/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/nla-digbench-scaling/bresenham-ll_valuebound20.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-34549b5 [2022-04-08 11:05:59,312 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-08 11:05:59,313 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-08 11:05:59,350 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-08 11:05:59,350 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-08 11:05:59,351 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-08 11:05:59,351 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-08 11:05:59,352 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-08 11:05:59,353 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-08 11:05:59,354 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-08 11:05:59,354 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-08 11:05:59,355 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-08 11:05:59,355 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-08 11:05:59,356 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-08 11:05:59,356 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-08 11:05:59,357 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-08 11:05:59,358 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-08 11:05:59,358 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-08 11:05:59,361 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-08 11:05:59,365 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-08 11:05:59,368 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-08 11:05:59,371 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-08 11:05:59,373 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-08 11:05:59,374 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-08 11:05:59,376 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-08 11:05:59,380 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-08 11:05:59,380 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-08 11:05:59,381 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-08 11:05:59,381 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-08 11:05:59,381 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-08 11:05:59,382 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-08 11:05:59,382 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-08 11:05:59,382 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-08 11:05:59,383 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-08 11:05:59,383 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-08 11:05:59,384 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-08 11:05:59,384 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-08 11:05:59,384 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-08 11:05:59,385 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-08 11:05:59,385 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-08 11:05:59,385 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-08 11:05:59,391 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-08 11:05:59,391 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationQvasr_64.epf [2022-04-08 11:05:59,398 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-08 11:05:59,399 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-08 11:05:59,400 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-08 11:05:59,400 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-08 11:05:59,401 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-08 11:05:59,401 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-08 11:05:59,401 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-08 11:05:59,401 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-08 11:05:59,401 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-08 11:05:59,401 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 11:05:59,402 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=QVASR [2022-04-08 11:05:59,402 INFO L138 SettingsManager]: * Use separate solver for trace checks=false WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-08 11:05:59,603 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-08 11:05:59,623 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-08 11:05:59,624 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-08 11:05:59,625 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-08 11:05:59,626 INFO L275 PluginConnector]: CDTParser initialized [2022-04-08 11:05:59,627 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c [2022-04-08 11:05:59,673 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3ce3fa68f/7ef36d3c779d4173b3e8564c65821e76/FLAG306d0d273 [2022-04-08 11:06:00,036 INFO L306 CDTParser]: Found 1 translation units. [2022-04-08 11:06:00,036 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c [2022-04-08 11:06:00,042 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3ce3fa68f/7ef36d3c779d4173b3e8564c65821e76/FLAG306d0d273 [2022-04-08 11:06:00,055 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3ce3fa68f/7ef36d3c779d4173b3e8564c65821e76 [2022-04-08 11:06:00,057 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-08 11:06:00,059 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-08 11:06:00,061 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-08 11:06:00,061 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-08 11:06:00,064 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-08 11:06:00,065 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,066 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@6e4c1d78 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00, skipping insertion in model container [2022-04-08 11:06:00,066 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,070 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-08 11:06:00,085 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-08 11:06:00,220 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c[597,610] [2022-04-08 11:06:00,248 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 11:06:00,253 INFO L203 MainTranslator]: Completed pre-run [2022-04-08 11:06:00,261 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c[597,610] [2022-04-08 11:06:00,266 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-08 11:06:00,274 INFO L208 MainTranslator]: Completed translation [2022-04-08 11:06:00,275 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00 WrapperNode [2022-04-08 11:06:00,275 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-08 11:06:00,278 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-08 11:06:00,278 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-08 11:06:00,279 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-08 11:06:00,285 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,286 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,292 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,292 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,306 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,310 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,314 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,316 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-08 11:06:00,317 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-08 11:06:00,317 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-08 11:06:00,317 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-08 11:06:00,318 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (1/1) ... [2022-04-08 11:06:00,322 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-08 11:06:00,329 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:06:00,349 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-08 11:06:00,362 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-08 11:06:00,389 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-08 11:06:00,389 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-08 11:06:00,389 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-08 11:06:00,389 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-08 11:06:00,389 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-08 11:06:00,390 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-08 11:06:00,390 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-08 11:06:00,390 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-08 11:06:00,390 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-08 11:06:00,391 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-08 11:06:00,439 INFO L234 CfgBuilder]: Building ICFG [2022-04-08 11:06:00,440 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-08 11:06:00,654 INFO L275 CfgBuilder]: Performing block encoding [2022-04-08 11:06:00,659 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-08 11:06:00,659 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-08 11:06:00,660 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 11:06:00 BoogieIcfgContainer [2022-04-08 11:06:00,660 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-08 11:06:00,661 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-08 11:06:00,662 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-08 11:06:00,678 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-08 11:06:00,678 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 08.04 11:06:00" (1/3) ... [2022-04-08 11:06:00,679 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@470070a3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 11:06:00, skipping insertion in model container [2022-04-08 11:06:00,679 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 08.04 11:06:00" (2/3) ... [2022-04-08 11:06:00,679 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@470070a3 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 08.04 11:06:00, skipping insertion in model container [2022-04-08 11:06:00,679 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 08.04 11:06:00" (3/3) ... [2022-04-08 11:06:00,680 INFO L111 eAbstractionObserver]: Analyzing ICFG bresenham-ll_valuebound20.c [2022-04-08 11:06:00,683 INFO L203 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-08 11:06:00,683 INFO L162 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-08 11:06:00,729 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-08 11:06:00,735 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=Craig_NestedInterpolation, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=FINITE_AUTOMATA, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=All, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP [2022-04-08 11:06:00,736 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-08 11:06:00,751 INFO L276 IsEmpty]: Start isEmpty. Operand has 32 states, 20 states have (on average 1.35) internal successors, (27), 21 states have internal predecessors, (27), 6 states have call successors, (6), 4 states have call predecessors, (6), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:06:00,756 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-08 11:06:00,756 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:06:00,757 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:06:00,757 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:06:00,763 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:06:00,763 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 1 times [2022-04-08 11:06:00,769 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:00,769 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1370346587] [2022-04-08 11:06:00,777 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:06:00,777 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 2 times [2022-04-08 11:06:00,780 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:06:00,780 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [661670037] [2022-04-08 11:06:00,780 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:06:00,781 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:06:00,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:00,923 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-08 11:06:00,934 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:00,950 INFO L290 TraceCheckUtils]: 0: Hoare triple {48#(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(15, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-08 11:06:00,950 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-08 11:06:00,950 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-08 11:06:00,951 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-08 11:06:00,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:00,964 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-08 11:06:00,964 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-08 11:06:00,965 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-08 11:06:00,965 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-08 11:06:00,965 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-08 11:06:00,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:00,990 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-08 11:06:00,991 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-08 11:06:00,991 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-08 11:06:00,991 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-08 11:06:00,995 INFO L272 TraceCheckUtils]: 0: Hoare triple {35#true} call ULTIMATE.init(); {48#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-08 11:06:00,995 INFO L290 TraceCheckUtils]: 1: Hoare triple {48#(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(15, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-08 11:06:00,995 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-08 11:06:00,995 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-08 11:06:00,996 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret8 := main(); {35#true} is VALID [2022-04-08 11:06:00,996 INFO L290 TraceCheckUtils]: 5: Hoare triple {35#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {35#true} is VALID [2022-04-08 11:06:00,996 INFO L272 TraceCheckUtils]: 6: Hoare triple {35#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {35#true} is VALID [2022-04-08 11:06:00,996 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-08 11:06:00,996 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-08 11:06:00,997 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-08 11:06:00,997 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-08 11:06:00,997 INFO L290 TraceCheckUtils]: 11: Hoare triple {36#false} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {36#false} is VALID [2022-04-08 11:06:00,997 INFO L272 TraceCheckUtils]: 12: Hoare triple {36#false} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {35#true} is VALID [2022-04-08 11:06:00,997 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-08 11:06:00,998 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-08 11:06:00,998 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-08 11:06:00,998 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-08 11:06:00,998 INFO L290 TraceCheckUtils]: 17: Hoare triple {36#false} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {36#false} is VALID [2022-04-08 11:06:00,999 INFO L290 TraceCheckUtils]: 18: Hoare triple {36#false} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {36#false} is VALID [2022-04-08 11:06:00,999 INFO L272 TraceCheckUtils]: 19: Hoare triple {36#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {36#false} is VALID [2022-04-08 11:06:00,999 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-08 11:06:00,999 INFO L290 TraceCheckUtils]: 21: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-08 11:06:00,999 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-08 11:06:00,999 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-08 11:06:01,000 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:06:01,000 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [661670037] [2022-04-08 11:06:01,000 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [661670037] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:01,001 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:01,001 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-08 11:06:01,002 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:06:01,003 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1370346587] [2022-04-08 11:06:01,003 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1370346587] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:01,003 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:01,003 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-08 11:06:01,003 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1680266375] [2022-04-08 11:06:01,003 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:06:01,006 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 23 [2022-04-08 11:06:01,007 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:06:01,009 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-08 11:06:01,043 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,044 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-08 11:06:01,044 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:01,060 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-08 11:06:01,061 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-08 11:06:01,064 INFO L87 Difference]: Start difference. First operand has 32 states, 20 states have (on average 1.35) internal successors, (27), 21 states have internal predecessors, (27), 6 states have call successors, (6), 4 states have call predecessors, (6), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-08 11:06:01,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,198 INFO L93 Difference]: Finished difference Result 57 states and 74 transitions. [2022-04-08 11:06:01,198 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-08 11:06:01,198 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 23 [2022-04-08 11:06:01,199 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:06:01,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-08 11:06:01,204 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-08 11:06:01,204 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-08 11:06:01,208 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-08 11:06:01,208 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2022-04-08 11:06:01,278 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,285 INFO L225 Difference]: With dead ends: 57 [2022-04-08 11:06:01,285 INFO L226 Difference]: Without dead ends: 27 [2022-04-08 11:06:01,288 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-08 11:06:01,291 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 20 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 6 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 24 SdHoareTripleChecker+Valid, 34 SdHoareTripleChecker+Invalid, 11 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 6 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-08 11:06:01,293 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [24 Valid, 34 Invalid, 11 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 6 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-08 11:06:01,303 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-08 11:06:01,318 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-08 11:06:01,319 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:06:01,319 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-08 11:06:01,320 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-08 11:06:01,320 INFO L87 Difference]: Start difference. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-08 11:06:01,322 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,322 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-08 11:06:01,323 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-08 11:06:01,323 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:01,323 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:01,323 INFO L74 IsIncluded]: Start isIncluded. First operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 27 states. [2022-04-08 11:06:01,324 INFO L87 Difference]: Start difference. First operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 27 states. [2022-04-08 11:06:01,325 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,325 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-08 11:06:01,326 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-08 11:06:01,326 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:01,326 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:01,326 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:06:01,326 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:06:01,326 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-08 11:06:01,328 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 30 transitions. [2022-04-08 11:06:01,331 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 30 transitions. Word has length 23 [2022-04-08 11:06:01,332 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:06:01,332 INFO L478 AbstractCegarLoop]: Abstraction has 27 states and 30 transitions. [2022-04-08 11:06:01,332 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-08 11:06:01,332 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 27 states and 30 transitions. [2022-04-08 11:06:01,355 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,355 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-08 11:06:01,356 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-08 11:06:01,356 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:06:01,356 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:06:01,356 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-08 11:06:01,356 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:06:01,357 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:06:01,357 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 1 times [2022-04-08 11:06:01,357 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:01,357 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1421548378] [2022-04-08 11:06:01,357 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:06:01,357 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 2 times [2022-04-08 11:06:01,358 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:06:01,358 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [51686734] [2022-04-08 11:06:01,358 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:06:01,358 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:06:01,375 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:06:01,376 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1722613735] [2022-04-08 11:06:01,376 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:06:01,376 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:01,385 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:06:01,387 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:06:01,389 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-08 11:06:01,429 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2022-04-08 11:06:01,429 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:06:01,430 INFO L263 TraceCheckSpWp]: Trace formula consists of 71 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-08 11:06:01,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:01,451 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:06:01,638 INFO L272 TraceCheckUtils]: 0: Hoare triple {273#true} call ULTIMATE.init(); {273#true} is VALID [2022-04-08 11:06:01,638 INFO L290 TraceCheckUtils]: 1: Hoare triple {273#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(15, 2);call #Ultimate.allocInit(12, 3); {273#true} is VALID [2022-04-08 11:06:01,638 INFO L290 TraceCheckUtils]: 2: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-08 11:06:01,638 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {273#true} {273#true} #69#return; {273#true} is VALID [2022-04-08 11:06:01,639 INFO L272 TraceCheckUtils]: 4: Hoare triple {273#true} call #t~ret8 := main(); {273#true} is VALID [2022-04-08 11:06:01,639 INFO L290 TraceCheckUtils]: 5: Hoare triple {273#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {273#true} is VALID [2022-04-08 11:06:01,639 INFO L272 TraceCheckUtils]: 6: Hoare triple {273#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {273#true} is VALID [2022-04-08 11:06:01,639 INFO L290 TraceCheckUtils]: 7: Hoare triple {273#true} ~cond := #in~cond; {273#true} is VALID [2022-04-08 11:06:01,639 INFO L290 TraceCheckUtils]: 8: Hoare triple {273#true} assume !(0 == ~cond); {273#true} is VALID [2022-04-08 11:06:01,640 INFO L290 TraceCheckUtils]: 9: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-08 11:06:01,640 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {273#true} {273#true} #61#return; {273#true} is VALID [2022-04-08 11:06:01,641 INFO L290 TraceCheckUtils]: 11: Hoare triple {273#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {273#true} is VALID [2022-04-08 11:06:01,641 INFO L272 TraceCheckUtils]: 12: Hoare triple {273#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {273#true} is VALID [2022-04-08 11:06:01,641 INFO L290 TraceCheckUtils]: 13: Hoare triple {273#true} ~cond := #in~cond; {273#true} is VALID [2022-04-08 11:06:01,644 INFO L290 TraceCheckUtils]: 14: Hoare triple {273#true} assume !(0 == ~cond); {273#true} is VALID [2022-04-08 11:06:01,644 INFO L290 TraceCheckUtils]: 15: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-08 11:06:01,644 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {273#true} {273#true} #63#return; {273#true} is VALID [2022-04-08 11:06:01,645 INFO L290 TraceCheckUtils]: 17: Hoare triple {273#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {329#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:01,646 INFO L290 TraceCheckUtils]: 18: Hoare triple {329#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {333#(and (= main_~xy~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~yx~0 0))} is VALID [2022-04-08 11:06:01,647 INFO L272 TraceCheckUtils]: 19: Hoare triple {333#(and (= main_~xy~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~yx~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {337#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:01,647 INFO L290 TraceCheckUtils]: 20: Hoare triple {337#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {341#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:01,647 INFO L290 TraceCheckUtils]: 21: Hoare triple {341#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {274#false} is VALID [2022-04-08 11:06:01,648 INFO L290 TraceCheckUtils]: 22: Hoare triple {274#false} assume !false; {274#false} is VALID [2022-04-08 11:06:01,648 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-08 11:06:01,648 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-08 11:06:01,648 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:06:01,648 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [51686734] [2022-04-08 11:06:01,649 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:06:01,649 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1722613735] [2022-04-08 11:06:01,649 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1722613735] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:01,649 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:01,649 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-08 11:06:01,650 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:06:01,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1421548378] [2022-04-08 11:06:01,650 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1421548378] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:01,650 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:01,650 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-08 11:06:01,650 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1039888754] [2022-04-08 11:06:01,650 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:06:01,651 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 23 [2022-04-08 11:06:01,652 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:06:01,652 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-08 11:06:01,668 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,669 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-08 11:06:01,670 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:01,671 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-08 11:06:01,671 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-08 11:06:01,672 INFO L87 Difference]: Start difference. First operand 27 states and 30 transitions. Second operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-08 11:06:01,859 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,859 INFO L93 Difference]: Finished difference Result 39 states and 44 transitions. [2022-04-08 11:06:01,859 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-08 11:06:01,859 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 23 [2022-04-08 11:06:01,860 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:06:01,860 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-08 11:06:01,868 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-08 11:06:01,868 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-08 11:06:01,872 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-08 11:06:01,872 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2022-04-08 11:06:01,922 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,926 INFO L225 Difference]: With dead ends: 39 [2022-04-08 11:06:01,926 INFO L226 Difference]: Without dead ends: 35 [2022-04-08 11:06:01,926 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-08 11:06:01,928 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 10 mSDsluCounter, 69 mSDsCounter, 0 mSdLazyCounter, 61 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 10 SdHoareTripleChecker+Valid, 91 SdHoareTripleChecker+Invalid, 66 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 61 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:06:01,931 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [10 Valid, 91 Invalid, 66 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 61 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 11:06:01,932 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-04-08 11:06:01,943 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 34. [2022-04-08 11:06:01,944 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:06:01,944 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-08 11:06:01,944 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-08 11:06:01,945 INFO L87 Difference]: Start difference. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-08 11:06:01,946 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,947 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-08 11:06:01,947 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-08 11:06:01,947 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:01,947 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:01,947 INFO L74 IsIncluded]: Start isIncluded. First operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 35 states. [2022-04-08 11:06:01,948 INFO L87 Difference]: Start difference. First operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 35 states. [2022-04-08 11:06:01,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:01,949 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-08 11:06:01,949 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-08 11:06:01,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:01,950 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:01,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:06:01,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:06:01,950 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-08 11:06:01,952 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 37 transitions. [2022-04-08 11:06:01,952 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 37 transitions. Word has length 23 [2022-04-08 11:06:01,952 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:06:01,952 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 37 transitions. [2022-04-08 11:06:01,952 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-08 11:06:01,952 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 34 states and 37 transitions. [2022-04-08 11:06:01,985 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:01,985 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 37 transitions. [2022-04-08 11:06:01,986 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-08 11:06:01,986 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:06:01,986 INFO L499 BasicCegarLoop]: trace histogram [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] [2022-04-08 11:06:02,005 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-04-08 11:06:02,192 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:02,193 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:06:02,194 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:06:02,194 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 1 times [2022-04-08 11:06:02,194 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:02,194 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [504317668] [2022-04-08 11:06:02,195 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:06:02,195 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 2 times [2022-04-08 11:06:02,195 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:06:02,196 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1992060721] [2022-04-08 11:06:02,196 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:06:02,196 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:06:02,223 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:06:02,223 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1330698193] [2022-04-08 11:06:02,223 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:06:02,223 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:02,224 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:06:02,224 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:06:02,225 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-08 11:06:02,274 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:06:02,274 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:06:02,275 INFO L263 TraceCheckSpWp]: Trace formula consists of 103 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-08 11:06:02,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:02,291 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:06:02,635 INFO L272 TraceCheckUtils]: 0: Hoare triple {567#true} call ULTIMATE.init(); {567#true} is VALID [2022-04-08 11:06:02,635 INFO L290 TraceCheckUtils]: 1: Hoare triple {567#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(15, 2);call #Ultimate.allocInit(12, 3); {567#true} is VALID [2022-04-08 11:06:02,635 INFO L290 TraceCheckUtils]: 2: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,635 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {567#true} {567#true} #69#return; {567#true} is VALID [2022-04-08 11:06:02,636 INFO L272 TraceCheckUtils]: 4: Hoare triple {567#true} call #t~ret8 := main(); {567#true} is VALID [2022-04-08 11:06:02,636 INFO L290 TraceCheckUtils]: 5: Hoare triple {567#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {567#true} is VALID [2022-04-08 11:06:02,636 INFO L272 TraceCheckUtils]: 6: Hoare triple {567#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,636 INFO L290 TraceCheckUtils]: 7: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-08 11:06:02,636 INFO L290 TraceCheckUtils]: 8: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-08 11:06:02,636 INFO L290 TraceCheckUtils]: 9: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,636 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {567#true} {567#true} #61#return; {567#true} is VALID [2022-04-08 11:06:02,637 INFO L290 TraceCheckUtils]: 11: Hoare triple {567#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {567#true} is VALID [2022-04-08 11:06:02,637 INFO L272 TraceCheckUtils]: 12: Hoare triple {567#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,637 INFO L290 TraceCheckUtils]: 13: Hoare triple {567#true} ~cond := #in~cond; {611#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 11:06:02,637 INFO L290 TraceCheckUtils]: 14: Hoare triple {611#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {615#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:06:02,638 INFO L290 TraceCheckUtils]: 15: Hoare triple {615#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {615#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:06:02,638 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {615#(not (= |assume_abort_if_not_#in~cond| 0))} {567#true} #63#return; {622#(and (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:06:02,639 INFO L290 TraceCheckUtils]: 17: Hoare triple {622#(and (<= 0 main_~Y~0) (<= main_~Y~0 20))} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:06:02,639 INFO L290 TraceCheckUtils]: 18: Hoare triple {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:06:02,639 INFO L272 TraceCheckUtils]: 19: Hoare triple {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,640 INFO L290 TraceCheckUtils]: 20: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-08 11:06:02,640 INFO L290 TraceCheckUtils]: 21: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-08 11:06:02,640 INFO L290 TraceCheckUtils]: 22: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,640 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {567#true} {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} #65#return; {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:06:02,641 INFO L290 TraceCheckUtils]: 24: Hoare triple {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:06:02,642 INFO L290 TraceCheckUtils]: 25: Hoare triple {626#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {651#(and (= main_~x~0 0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:06:02,642 INFO L290 TraceCheckUtils]: 26: Hoare triple {651#(and (= main_~x~0 0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {655#(and (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:06:02,643 INFO L290 TraceCheckUtils]: 27: Hoare triple {655#(and (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {659#(and (= main_~xy~0 0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~Y~0 main_~yx~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:06:02,644 INFO L272 TraceCheckUtils]: 28: Hoare triple {659#(and (= main_~xy~0 0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~Y~0 main_~yx~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {663#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:02,644 INFO L290 TraceCheckUtils]: 29: Hoare triple {663#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {667#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:02,644 INFO L290 TraceCheckUtils]: 30: Hoare triple {667#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {568#false} is VALID [2022-04-08 11:06:02,644 INFO L290 TraceCheckUtils]: 31: Hoare triple {568#false} assume !false; {568#false} is VALID [2022-04-08 11:06:02,645 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 5 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2022-04-08 11:06:02,645 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:06:02,853 INFO L290 TraceCheckUtils]: 31: Hoare triple {568#false} assume !false; {568#false} is VALID [2022-04-08 11:06:02,853 INFO L290 TraceCheckUtils]: 30: Hoare triple {667#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {568#false} is VALID [2022-04-08 11:06:02,854 INFO L290 TraceCheckUtils]: 29: Hoare triple {663#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {667#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:02,854 INFO L272 TraceCheckUtils]: 28: Hoare triple {683#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {663#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:02,855 INFO L290 TraceCheckUtils]: 27: Hoare triple {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {683#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:06:02,858 INFO L290 TraceCheckUtils]: 26: Hoare triple {691#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:02,859 INFO L290 TraceCheckUtils]: 25: Hoare triple {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {691#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:06:02,859 INFO L290 TraceCheckUtils]: 24: Hoare triple {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:02,861 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {567#true} {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} #65#return; {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:02,861 INFO L290 TraceCheckUtils]: 22: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,861 INFO L290 TraceCheckUtils]: 21: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-08 11:06:02,861 INFO L290 TraceCheckUtils]: 20: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-08 11:06:02,861 INFO L272 TraceCheckUtils]: 19: Hoare triple {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,862 INFO L290 TraceCheckUtils]: 18: Hoare triple {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:02,867 INFO L290 TraceCheckUtils]: 17: Hoare triple {567#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {687#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:02,867 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {567#true} {567#true} #63#return; {567#true} is VALID [2022-04-08 11:06:02,867 INFO L290 TraceCheckUtils]: 15: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,867 INFO L290 TraceCheckUtils]: 14: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 13: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-08 11:06:02,868 INFO L272 TraceCheckUtils]: 12: Hoare triple {567#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 11: Hoare triple {567#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {567#true} is VALID [2022-04-08 11:06:02,868 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {567#true} {567#true} #61#return; {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 9: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 8: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 7: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-08 11:06:02,868 INFO L272 TraceCheckUtils]: 6: Hoare triple {567#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {567#true} is VALID [2022-04-08 11:06:02,868 INFO L290 TraceCheckUtils]: 5: Hoare triple {567#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {567#true} is VALID [2022-04-08 11:06:02,869 INFO L272 TraceCheckUtils]: 4: Hoare triple {567#true} call #t~ret8 := main(); {567#true} is VALID [2022-04-08 11:06:02,869 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {567#true} {567#true} #69#return; {567#true} is VALID [2022-04-08 11:06:02,869 INFO L290 TraceCheckUtils]: 2: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-08 11:06:02,869 INFO L290 TraceCheckUtils]: 1: Hoare triple {567#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(15, 2);call #Ultimate.allocInit(12, 3); {567#true} is VALID [2022-04-08 11:06:02,869 INFO L272 TraceCheckUtils]: 0: Hoare triple {567#true} call ULTIMATE.init(); {567#true} is VALID [2022-04-08 11:06:02,869 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-08 11:06:02,870 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:06:02,870 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1992060721] [2022-04-08 11:06:02,870 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:06:02,870 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1330698193] [2022-04-08 11:06:02,870 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1330698193] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:06:02,870 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:06:02,870 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 7] total 14 [2022-04-08 11:06:02,870 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:06:02,870 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [504317668] [2022-04-08 11:06:02,870 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [504317668] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:02,871 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:02,871 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 11:06:02,871 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [893971411] [2022-04-08 11:06:02,871 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:06:02,871 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-04-08 11:06:02,871 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:06:02,872 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:02,908 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:02,908 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-08 11:06:02,908 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:02,909 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-08 11:06:02,909 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=149, Unknown=0, NotChecked=0, Total=182 [2022-04-08 11:06:02,909 INFO L87 Difference]: Start difference. First operand 34 states and 37 transitions. Second operand has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:03,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:03,427 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2022-04-08 11:06:03,427 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-08 11:06:03,427 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-04-08 11:06:03,427 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:06:03,427 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:03,429 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 51 transitions. [2022-04-08 11:06:03,429 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:03,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 51 transitions. [2022-04-08 11:06:03,430 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 51 transitions. [2022-04-08 11:06:03,471 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:03,472 INFO L225 Difference]: With dead ends: 48 [2022-04-08 11:06:03,472 INFO L226 Difference]: Without dead ends: 44 [2022-04-08 11:06:03,472 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 66 GetRequests, 49 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 44 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=48, Invalid=224, Unknown=0, NotChecked=0, Total=272 [2022-04-08 11:06:03,473 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 22 mSDsluCounter, 128 mSDsCounter, 0 mSdLazyCounter, 211 mSolverCounterSat, 11 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 150 SdHoareTripleChecker+Invalid, 222 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 11 IncrementalHoareTripleChecker+Valid, 211 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-08 11:06:03,473 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 150 Invalid, 222 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [11 Valid, 211 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-08 11:06:03,474 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2022-04-08 11:06:03,504 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 43. [2022-04-08 11:06:03,504 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:06:03,505 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:06:03,505 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:06:03,505 INFO L87 Difference]: Start difference. First operand 44 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:06:03,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:03,514 INFO L93 Difference]: Finished difference Result 44 states and 49 transitions. [2022-04-08 11:06:03,514 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-08 11:06:03,517 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:03,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:03,519 INFO L74 IsIncluded]: Start isIncluded. First operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 44 states. [2022-04-08 11:06:03,519 INFO L87 Difference]: Start difference. First operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 44 states. [2022-04-08 11:06:03,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:03,521 INFO L93 Difference]: Finished difference Result 44 states and 49 transitions. [2022-04-08 11:06:03,521 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-08 11:06:03,521 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:03,521 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:03,521 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:06:03,521 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:06:03,521 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:06:03,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2022-04-08 11:06:03,523 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 32 [2022-04-08 11:06:03,523 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:06:03,523 INFO L478 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2022-04-08 11:06:03,523 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 10 states have (on average 2.2) internal successors, (22), 9 states have internal predecessors, (22), 3 states have call successors, (6), 2 states have call predecessors, (6), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:03,523 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 43 states and 47 transitions. [2022-04-08 11:06:03,562 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:03,562 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2022-04-08 11:06:03,564 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-08 11:06:03,564 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:06:03,564 INFO L499 BasicCegarLoop]: trace histogram [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] [2022-04-08 11:06:03,587 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Ended with exit code 0 [2022-04-08 11:06:03,780 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-08 11:06:03,780 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:06:03,781 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:06:03,781 INFO L85 PathProgramCache]: Analyzing trace with hash 355715891, now seen corresponding path program 1 times [2022-04-08 11:06:03,781 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:03,781 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [52902192] [2022-04-08 11:06:03,781 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:06:03,781 INFO L85 PathProgramCache]: Analyzing trace with hash 355715891, now seen corresponding path program 2 times [2022-04-08 11:06:03,781 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:06:03,782 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [924670002] [2022-04-08 11:06:03,782 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:06:03,782 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:06:03,792 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:06:03,793 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1237545374] [2022-04-08 11:06:03,793 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:06:03,793 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:03,793 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:06:03,794 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:06:03,795 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-08 11:06:03,826 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:06:03,827 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:06:03,827 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-08 11:06:03,841 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:03,841 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:06:04,029 INFO L272 TraceCheckUtils]: 0: Hoare triple {1048#true} call ULTIMATE.init(); {1048#true} is VALID [2022-04-08 11:06:04,029 INFO L290 TraceCheckUtils]: 1: Hoare triple {1048#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(15, 2);call #Ultimate.allocInit(12, 3); {1048#true} is VALID [2022-04-08 11:06:04,029 INFO L290 TraceCheckUtils]: 2: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,029 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1048#true} {1048#true} #69#return; {1048#true} is VALID [2022-04-08 11:06:04,029 INFO L272 TraceCheckUtils]: 4: Hoare triple {1048#true} call #t~ret8 := main(); {1048#true} is VALID [2022-04-08 11:06:04,029 INFO L290 TraceCheckUtils]: 5: Hoare triple {1048#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L272 TraceCheckUtils]: 6: Hoare triple {1048#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 7: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 8: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 9: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1048#true} {1048#true} #61#return; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 11: Hoare triple {1048#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L272 TraceCheckUtils]: 12: Hoare triple {1048#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 13: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,030 INFO L290 TraceCheckUtils]: 14: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,031 INFO L290 TraceCheckUtils]: 15: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,031 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1048#true} {1048#true} #63#return; {1048#true} is VALID [2022-04-08 11:06:04,032 INFO L290 TraceCheckUtils]: 17: Hoare triple {1048#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:04,032 INFO L290 TraceCheckUtils]: 18: Hoare triple {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:04,033 INFO L272 TraceCheckUtils]: 19: Hoare triple {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,033 INFO L290 TraceCheckUtils]: 20: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,033 INFO L290 TraceCheckUtils]: 21: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,033 INFO L290 TraceCheckUtils]: 22: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,034 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1048#true} {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:04,034 INFO L290 TraceCheckUtils]: 24: Hoare triple {1104#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {1126#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:04,035 INFO L290 TraceCheckUtils]: 25: Hoare triple {1126#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {1130#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:06:04,035 INFO L290 TraceCheckUtils]: 26: Hoare triple {1130#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1134#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:06:04,036 INFO L290 TraceCheckUtils]: 27: Hoare triple {1134#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1138#(and (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (= main_~X~0 main_~xy~0) (<= 0 main_~X~0) (= main_~Y~0 main_~yx~0))} is VALID [2022-04-08 11:06:04,037 INFO L272 TraceCheckUtils]: 28: Hoare triple {1138#(and (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (= main_~X~0 main_~xy~0) (<= 0 main_~X~0) (= main_~Y~0 main_~yx~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:04,037 INFO L290 TraceCheckUtils]: 29: Hoare triple {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1146#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:04,037 INFO L290 TraceCheckUtils]: 30: Hoare triple {1146#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1049#false} is VALID [2022-04-08 11:06:04,038 INFO L290 TraceCheckUtils]: 31: Hoare triple {1049#false} assume !false; {1049#false} is VALID [2022-04-08 11:06:04,038 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-08 11:06:04,038 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:06:04,232 INFO L290 TraceCheckUtils]: 31: Hoare triple {1049#false} assume !false; {1049#false} is VALID [2022-04-08 11:06:04,233 INFO L290 TraceCheckUtils]: 30: Hoare triple {1146#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1049#false} is VALID [2022-04-08 11:06:04,233 INFO L290 TraceCheckUtils]: 29: Hoare triple {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1146#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:04,234 INFO L272 TraceCheckUtils]: 28: Hoare triple {1162#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:04,235 INFO L290 TraceCheckUtils]: 27: Hoare triple {1166#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1162#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:06:04,328 INFO L290 TraceCheckUtils]: 26: Hoare triple {1170#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1166#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:04,330 INFO L290 TraceCheckUtils]: 25: Hoare triple {1166#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {1170#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:06:04,331 INFO L290 TraceCheckUtils]: 24: Hoare triple {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} assume !!(~x~0 <= ~X~0); {1166#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:06:04,331 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1048#true} {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} #65#return; {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:06:04,331 INFO L290 TraceCheckUtils]: 22: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,332 INFO L290 TraceCheckUtils]: 21: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,332 INFO L290 TraceCheckUtils]: 20: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,332 INFO L272 TraceCheckUtils]: 19: Hoare triple {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,332 INFO L290 TraceCheckUtils]: 18: Hoare triple {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 17: Hoare triple {1048#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1177#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:06:04,333 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1048#true} {1048#true} #63#return; {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 15: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 14: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 13: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L272 TraceCheckUtils]: 12: Hoare triple {1048#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 11: Hoare triple {1048#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1048#true} {1048#true} #61#return; {1048#true} is VALID [2022-04-08 11:06:04,333 INFO L290 TraceCheckUtils]: 9: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L290 TraceCheckUtils]: 8: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L290 TraceCheckUtils]: 7: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L272 TraceCheckUtils]: 6: Hoare triple {1048#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L290 TraceCheckUtils]: 5: Hoare triple {1048#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L272 TraceCheckUtils]: 4: Hoare triple {1048#true} call #t~ret8 := main(); {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1048#true} {1048#true} #69#return; {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L290 TraceCheckUtils]: 2: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L290 TraceCheckUtils]: 1: Hoare triple {1048#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(15, 2);call #Ultimate.allocInit(12, 3); {1048#true} is VALID [2022-04-08 11:06:04,334 INFO L272 TraceCheckUtils]: 0: Hoare triple {1048#true} call ULTIMATE.init(); {1048#true} is VALID [2022-04-08 11:06:04,335 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 3 proven. 1 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-08 11:06:04,335 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:06:04,335 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [924670002] [2022-04-08 11:06:04,335 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:06:04,335 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1237545374] [2022-04-08 11:06:04,335 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1237545374] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:06:04,335 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:06:04,335 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 13 [2022-04-08 11:06:04,336 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:06:04,336 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [52902192] [2022-04-08 11:06:04,336 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [52902192] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:06:04,336 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:06:04,336 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 11:06:04,336 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1113440553] [2022-04-08 11:06:04,336 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:06:04,336 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-04-08 11:06:04,337 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:06:04,337 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:04,357 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 29 edges. 29 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:04,357 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 11:06:04,357 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:04,357 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 11:06:04,358 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2022-04-08 11:06:04,358 INFO L87 Difference]: Start difference. First operand 43 states and 47 transitions. Second operand has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:04,681 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:04,682 INFO L93 Difference]: Finished difference Result 56 states and 62 transitions. [2022-04-08 11:06:04,682 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-08 11:06:04,682 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 32 [2022-04-08 11:06:04,682 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:06:04,682 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:04,683 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 51 transitions. [2022-04-08 11:06:04,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:04,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 51 transitions. [2022-04-08 11:06:04,685 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 51 transitions. [2022-04-08 11:06:04,720 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:04,722 INFO L225 Difference]: With dead ends: 56 [2022-04-08 11:06:04,722 INFO L226 Difference]: Without dead ends: 54 [2022-04-08 11:06:04,722 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 65 GetRequests, 50 SyntacticMatches, 2 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=44, Invalid=166, Unknown=0, NotChecked=0, Total=210 [2022-04-08 11:06:04,723 INFO L913 BasicCegarLoop]: 27 mSDtfsCounter, 11 mSDsluCounter, 111 mSDsCounter, 0 mSdLazyCounter, 136 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 11 SdHoareTripleChecker+Valid, 138 SdHoareTripleChecker+Invalid, 139 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 136 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:06:04,723 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [11 Valid, 138 Invalid, 139 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 136 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 11:06:04,723 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2022-04-08 11:06:04,751 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 50. [2022-04-08 11:06:04,751 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:06:04,751 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-08 11:06:04,752 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-08 11:06:04,752 INFO L87 Difference]: Start difference. First operand 54 states. Second operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-08 11:06:04,753 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:04,754 INFO L93 Difference]: Finished difference Result 54 states and 60 transitions. [2022-04-08 11:06:04,754 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2022-04-08 11:06:04,754 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:04,754 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:04,754 INFO L74 IsIncluded]: Start isIncluded. First operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 54 states. [2022-04-08 11:06:04,754 INFO L87 Difference]: Start difference. First operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 54 states. [2022-04-08 11:06:04,756 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:06:04,756 INFO L93 Difference]: Finished difference Result 54 states and 60 transitions. [2022-04-08 11:06:04,756 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2022-04-08 11:06:04,756 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:06:04,756 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:06:04,756 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:06:04,756 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:06:04,757 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 34 states have (on average 1.1176470588235294) internal successors, (38), 36 states have internal predecessors, (38), 9 states have call successors, (9), 7 states have call predecessors, (9), 6 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-08 11:06:04,758 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 54 transitions. [2022-04-08 11:06:04,758 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 54 transitions. Word has length 32 [2022-04-08 11:06:04,758 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:06:04,758 INFO L478 AbstractCegarLoop]: Abstraction has 50 states and 54 transitions. [2022-04-08 11:06:04,758 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 8 states have (on average 2.375) internal successors, (19), 8 states have internal predecessors, (19), 3 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-08 11:06:04,758 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 50 states and 54 transitions. [2022-04-08 11:06:04,801 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:06:04,802 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 54 transitions. [2022-04-08 11:06:04,802 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-08 11:06:04,802 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:06:04,802 INFO L499 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:06:04,829 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-08 11:06:05,003 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:05,003 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:06:05,003 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:06:05,004 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 1 times [2022-04-08 11:06:05,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:06:05,004 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1342638955] [2022-04-08 11:06:05,004 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:06:05,004 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 2 times [2022-04-08 11:06:05,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:06:05,005 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1823984035] [2022-04-08 11:06:05,005 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:06:05,005 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:06:05,016 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:06:05,016 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1762536314] [2022-04-08 11:06:05,016 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:06:05,016 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:06:05,016 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:06:05,017 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:06:05,018 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-08 11:06:05,085 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:06:05,086 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:06:05,086 INFO L263 TraceCheckSpWp]: Trace formula consists of 119 conjuncts, 30 conjunts are in the unsatisfiable core [2022-04-08 11:06:05,099 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:06:05,100 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:06:22,255 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:06:31,644 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:06:37,663 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:06:49,356 INFO L272 TraceCheckUtils]: 0: Hoare triple {1576#true} call ULTIMATE.init(); {1576#true} is VALID [2022-04-08 11:06:49,356 INFO L290 TraceCheckUtils]: 1: Hoare triple {1576#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(15, 2);call #Ultimate.allocInit(12, 3); {1576#true} is VALID [2022-04-08 11:06:49,356 INFO L290 TraceCheckUtils]: 2: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:06:49,356 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1576#true} {1576#true} #69#return; {1576#true} is VALID [2022-04-08 11:06:49,356 INFO L272 TraceCheckUtils]: 4: Hoare triple {1576#true} call #t~ret8 := main(); {1576#true} is VALID [2022-04-08 11:06:49,356 INFO L290 TraceCheckUtils]: 5: Hoare triple {1576#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L272 TraceCheckUtils]: 6: Hoare triple {1576#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 7: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 8: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 9: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1576#true} {1576#true} #61#return; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 11: Hoare triple {1576#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L272 TraceCheckUtils]: 12: Hoare triple {1576#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 13: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 14: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-08 11:06:49,357 INFO L290 TraceCheckUtils]: 15: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:06:49,358 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1576#true} {1576#true} #63#return; {1576#true} is VALID [2022-04-08 11:06:49,358 INFO L290 TraceCheckUtils]: 17: Hoare triple {1576#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1632#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:49,359 INFO L290 TraceCheckUtils]: 18: Hoare triple {1632#(and (= main_~x~0 0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1632#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:49,359 INFO L272 TraceCheckUtils]: 19: Hoare triple {1632#(and (= main_~x~0 0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:06:49,359 INFO L290 TraceCheckUtils]: 20: Hoare triple {1576#true} ~cond := #in~cond; {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:49,359 INFO L290 TraceCheckUtils]: 21: Hoare triple {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:06:49,360 INFO L290 TraceCheckUtils]: 22: Hoare triple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:06:49,360 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} {1632#(and (= main_~x~0 0) (= main_~y~0 0))} #65#return; {1632#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:49,361 INFO L290 TraceCheckUtils]: 24: Hoare triple {1632#(and (= main_~x~0 0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {1656#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:06:49,361 INFO L290 TraceCheckUtils]: 25: Hoare triple {1656#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {1660#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0))} is VALID [2022-04-08 11:06:49,362 INFO L290 TraceCheckUtils]: 26: Hoare triple {1660#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1664#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (<= 0 main_~X~0))} is VALID [2022-04-08 11:06:49,362 INFO L290 TraceCheckUtils]: 27: Hoare triple {1664#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (<= 0 main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1668#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:06:49,362 INFO L272 TraceCheckUtils]: 28: Hoare triple {1668#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:06:49,362 INFO L290 TraceCheckUtils]: 29: Hoare triple {1576#true} ~cond := #in~cond; {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:49,363 INFO L290 TraceCheckUtils]: 30: Hoare triple {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:06:49,363 INFO L290 TraceCheckUtils]: 31: Hoare triple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:06:49,364 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} {1668#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {1684#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0))} is VALID [2022-04-08 11:06:49,365 INFO L290 TraceCheckUtils]: 33: Hoare triple {1684#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0))} assume !(~x~0 <= ~X~0); {1688#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:06:49,371 INFO L290 TraceCheckUtils]: 34: Hoare triple {1688#(and (= (+ (- 1) main_~y~0) 0) (<= main_~x~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (not (<= main_~x~0 main_~X~0)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1692#(and (= (+ (- 1) main_~y~0) 0) (<= 0 main_~X~0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (< main_~X~0 (div main_~xy~0 main_~y~0)) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (<= (div main_~xy~0 main_~y~0) 1) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 1) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} is VALID [2022-04-08 11:06:49,373 INFO L272 TraceCheckUtils]: 35: Hoare triple {1692#(and (= (+ (- 1) main_~y~0) 0) (<= 0 main_~X~0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (< main_~X~0 (div main_~xy~0 main_~y~0)) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (<= (div main_~xy~0 main_~y~0) 1) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 1) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:06:49,373 INFO L290 TraceCheckUtils]: 36: Hoare triple {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1700#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:06:49,374 INFO L290 TraceCheckUtils]: 37: Hoare triple {1700#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1577#false} is VALID [2022-04-08 11:06:49,374 INFO L290 TraceCheckUtils]: 38: Hoare triple {1577#false} assume !false; {1577#false} is VALID [2022-04-08 11:06:49,374 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 2 proven. 5 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-08 11:06:49,374 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:07:02,354 INFO L290 TraceCheckUtils]: 38: Hoare triple {1577#false} assume !false; {1577#false} is VALID [2022-04-08 11:07:02,355 INFO L290 TraceCheckUtils]: 37: Hoare triple {1700#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1577#false} is VALID [2022-04-08 11:07:02,355 INFO L290 TraceCheckUtils]: 36: Hoare triple {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1700#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:02,356 INFO L272 TraceCheckUtils]: 35: Hoare triple {1716#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:07:02,357 INFO L290 TraceCheckUtils]: 34: Hoare triple {1720#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1716#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:02,357 INFO L290 TraceCheckUtils]: 33: Hoare triple {1724#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {1720#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-08 11:07:02,358 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} {1728#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {1724#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:07:02,358 INFO L290 TraceCheckUtils]: 31: Hoare triple {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:02,359 INFO L290 TraceCheckUtils]: 30: Hoare triple {1738#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {1646#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:02,359 INFO L290 TraceCheckUtils]: 29: Hoare triple {1576#true} ~cond := #in~cond; {1738#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:07:02,359 INFO L272 TraceCheckUtils]: 28: Hoare triple {1728#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:07:02,360 INFO L290 TraceCheckUtils]: 27: Hoare triple {1745#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1728#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:07:02,361 INFO L290 TraceCheckUtils]: 26: Hoare triple {1749#(forall ((v_main_~x~0_16 Int)) (or (<= v_main_~x~0_16 main_~X~0) (not (<= v_main_~x~0_16 (+ main_~x~0 1))) (= (+ (* (* v_main_~x~0_16 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_16 main_~y~0)) (* (* v_main_~x~0_16 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2))))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1745#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:07:02,364 INFO L290 TraceCheckUtils]: 25: Hoare triple {1753#(forall ((v_main_~x~0_16 Int)) (or (<= v_main_~x~0_16 main_~X~0) (not (<= v_main_~x~0_16 (+ main_~x~0 1))) (= (+ (* (* v_main_~x~0_16 main_~Y~0) 2) (* (* v_main_~x~0_16 (+ main_~y~0 1)) 2) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ (* (* v_main_~x~0_16 main_~Y~0) 2) 2 (* main_~y~0 2) (* main_~Y~0 2)))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {1749#(forall ((v_main_~x~0_16 Int)) (or (<= v_main_~x~0_16 main_~X~0) (not (<= v_main_~x~0_16 (+ main_~x~0 1))) (= (+ (* (* v_main_~x~0_16 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_16 main_~y~0)) (* (* v_main_~x~0_16 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2))))))} is VALID [2022-04-08 11:07:02,365 INFO L290 TraceCheckUtils]: 24: Hoare triple {1576#true} assume !!(~x~0 <= ~X~0); {1753#(forall ((v_main_~x~0_16 Int)) (or (<= v_main_~x~0_16 main_~X~0) (not (<= v_main_~x~0_16 (+ main_~x~0 1))) (= (+ (* (* v_main_~x~0_16 main_~Y~0) 2) (* (* v_main_~x~0_16 (+ main_~y~0 1)) 2) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ (* (* v_main_~x~0_16 main_~Y~0) 2) 2 (* main_~y~0 2) (* main_~Y~0 2)))))} is VALID [2022-04-08 11:07:02,365 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1576#true} {1576#true} #65#return; {1576#true} is VALID [2022-04-08 11:07:02,365 INFO L290 TraceCheckUtils]: 22: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:07:02,365 INFO L290 TraceCheckUtils]: 21: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-08 11:07:02,365 INFO L290 TraceCheckUtils]: 20: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-08 11:07:02,374 INFO L272 TraceCheckUtils]: 19: Hoare triple {1576#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:07:02,375 INFO L290 TraceCheckUtils]: 18: Hoare triple {1576#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1576#true} is VALID [2022-04-08 11:07:02,375 INFO L290 TraceCheckUtils]: 17: Hoare triple {1576#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1576#true} is VALID [2022-04-08 11:07:02,375 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1576#true} {1576#true} #63#return; {1576#true} is VALID [2022-04-08 11:07:02,375 INFO L290 TraceCheckUtils]: 15: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L290 TraceCheckUtils]: 14: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L290 TraceCheckUtils]: 13: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L272 TraceCheckUtils]: 12: Hoare triple {1576#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L290 TraceCheckUtils]: 11: Hoare triple {1576#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1576#true} {1576#true} #61#return; {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L290 TraceCheckUtils]: 9: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:07:02,376 INFO L290 TraceCheckUtils]: 8: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L290 TraceCheckUtils]: 7: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L272 TraceCheckUtils]: 6: Hoare triple {1576#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L290 TraceCheckUtils]: 5: Hoare triple {1576#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L272 TraceCheckUtils]: 4: Hoare triple {1576#true} call #t~ret8 := main(); {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1576#true} {1576#true} #69#return; {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L290 TraceCheckUtils]: 2: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L290 TraceCheckUtils]: 1: Hoare triple {1576#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(15, 2);call #Ultimate.allocInit(12, 3); {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L272 TraceCheckUtils]: 0: Hoare triple {1576#true} call ULTIMATE.init(); {1576#true} is VALID [2022-04-08 11:07:02,377 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-08 11:07:02,378 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:07:02,378 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1823984035] [2022-04-08 11:07:02,378 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:07:02,378 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1762536314] [2022-04-08 11:07:02,378 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1762536314] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:07:02,378 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:07:02,378 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 22 [2022-04-08 11:07:02,378 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:07:02,378 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1342638955] [2022-04-08 11:07:02,379 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1342638955] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:07:02,379 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:07:02,379 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 11:07:02,379 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1738184866] [2022-04-08 11:07:02,379 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:07:02,383 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 39 [2022-04-08 11:07:02,383 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:07:02,384 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:02,415 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:02,415 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 11:07:02,416 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:02,416 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 11:07:02,416 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=388, Unknown=0, NotChecked=0, Total=462 [2022-04-08 11:07:02,416 INFO L87 Difference]: Start difference. First operand 50 states and 54 transitions. Second operand has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:07,268 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:07:09,490 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:07:09,673 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:09,673 INFO L93 Difference]: Finished difference Result 61 states and 66 transitions. [2022-04-08 11:07:09,673 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-08 11:07:09,673 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 39 [2022-04-08 11:07:09,674 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:07:09,674 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:09,675 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 53 transitions. [2022-04-08 11:07:09,676 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:09,677 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 53 transitions. [2022-04-08 11:07:09,677 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 53 transitions. [2022-04-08 11:07:09,740 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:09,742 INFO L225 Difference]: With dead ends: 61 [2022-04-08 11:07:09,742 INFO L226 Difference]: Without dead ends: 53 [2022-04-08 11:07:09,742 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 56 SyntacticMatches, 1 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 131 ImplicationChecksByTransitivity, 2.7s TimeCoverageRelationStatistics Valid=116, Invalid=586, Unknown=0, NotChecked=0, Total=702 [2022-04-08 11:07:09,743 INFO L913 BasicCegarLoop]: 23 mSDtfsCounter, 16 mSDsluCounter, 196 mSDsCounter, 0 mSdLazyCounter, 293 mSolverCounterSat, 4 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 219 SdHoareTripleChecker+Invalid, 299 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 4 IncrementalHoareTripleChecker+Valid, 293 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.4s IncrementalHoareTripleChecker+Time [2022-04-08 11:07:09,743 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [17 Valid, 219 Invalid, 299 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [4 Valid, 293 Invalid, 2 Unknown, 0 Unchecked, 4.4s Time] [2022-04-08 11:07:09,744 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2022-04-08 11:07:09,778 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 43. [2022-04-08 11:07:09,778 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:07:09,779 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:07:09,779 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:07:09,779 INFO L87 Difference]: Start difference. First operand 53 states. Second operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:07:09,781 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:09,781 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-04-08 11:07:09,781 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-04-08 11:07:09,781 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:09,781 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:09,781 INFO L74 IsIncluded]: Start isIncluded. First operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 53 states. [2022-04-08 11:07:09,782 INFO L87 Difference]: Start difference. First operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 53 states. [2022-04-08 11:07:09,786 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:09,786 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-04-08 11:07:09,786 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-04-08 11:07:09,786 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:09,786 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:09,787 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:07:09,787 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:07:09,787 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 43 states, 29 states have (on average 1.1379310344827587) internal successors, (33), 30 states have internal predecessors, (33), 8 states have call successors, (8), 6 states have call predecessors, (8), 5 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-08 11:07:09,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2022-04-08 11:07:09,788 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 39 [2022-04-08 11:07:09,788 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:07:09,788 INFO L478 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2022-04-08 11:07:09,788 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 12 states have (on average 1.75) internal successors, (21), 12 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:09,788 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 43 states and 47 transitions. [2022-04-08 11:07:09,839 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:09,839 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2022-04-08 11:07:09,840 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-08 11:07:09,840 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:07:09,840 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:07:09,859 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-08 11:07:10,055 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:10,055 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:07:10,056 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:07:10,056 INFO L85 PathProgramCache]: Analyzing trace with hash 733948825, now seen corresponding path program 3 times [2022-04-08 11:07:10,056 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:10,056 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1520887456] [2022-04-08 11:07:10,056 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:07:10,056 INFO L85 PathProgramCache]: Analyzing trace with hash 733948825, now seen corresponding path program 4 times [2022-04-08 11:07:10,056 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:07:10,056 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1057609610] [2022-04-08 11:07:10,057 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:07:10,057 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:07:10,068 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:07:10,068 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [370353465] [2022-04-08 11:07:10,068 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:07:10,068 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:10,068 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:07:10,069 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:07:10,070 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-08 11:07:10,103 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:07:10,103 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:07:10,104 INFO L263 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 33 conjunts are in the unsatisfiable core [2022-04-08 11:07:10,111 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:07:10,112 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:07:29,721 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:07:35,848 INFO L272 TraceCheckUtils]: 0: Hoare triple {2155#true} call ULTIMATE.init(); {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 1: Hoare triple {2155#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(15, 2);call #Ultimate.allocInit(12, 3); {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 2: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2155#true} {2155#true} #69#return; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L272 TraceCheckUtils]: 4: Hoare triple {2155#true} call #t~ret8 := main(); {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 5: Hoare triple {2155#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L272 TraceCheckUtils]: 6: Hoare triple {2155#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 7: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 8: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 9: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2155#true} {2155#true} #61#return; {2155#true} is VALID [2022-04-08 11:07:35,849 INFO L290 TraceCheckUtils]: 11: Hoare triple {2155#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L272 TraceCheckUtils]: 12: Hoare triple {2155#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L290 TraceCheckUtils]: 13: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L290 TraceCheckUtils]: 14: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L290 TraceCheckUtils]: 15: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2155#true} {2155#true} #63#return; {2155#true} is VALID [2022-04-08 11:07:35,850 INFO L290 TraceCheckUtils]: 17: Hoare triple {2155#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,851 INFO L290 TraceCheckUtils]: 18: Hoare triple {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,851 INFO L272 TraceCheckUtils]: 19: Hoare triple {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:35,851 INFO L290 TraceCheckUtils]: 20: Hoare triple {2155#true} ~cond := #in~cond; {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:35,852 INFO L290 TraceCheckUtils]: 21: Hoare triple {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:35,852 INFO L290 TraceCheckUtils]: 22: Hoare triple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:35,853 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} #65#return; {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,853 INFO L290 TraceCheckUtils]: 24: Hoare triple {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,854 INFO L290 TraceCheckUtils]: 25: Hoare triple {2211#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2238#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,854 INFO L290 TraceCheckUtils]: 26: Hoare triple {2238#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2238#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,855 INFO L290 TraceCheckUtils]: 27: Hoare triple {2238#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2245#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:07:35,855 INFO L272 TraceCheckUtils]: 28: Hoare triple {2245#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:35,855 INFO L290 TraceCheckUtils]: 29: Hoare triple {2155#true} ~cond := #in~cond; {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:35,855 INFO L290 TraceCheckUtils]: 30: Hoare triple {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:35,856 INFO L290 TraceCheckUtils]: 31: Hoare triple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:35,857 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} {2245#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {2261#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,857 INFO L290 TraceCheckUtils]: 33: Hoare triple {2261#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {2261#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:07:35,858 INFO L290 TraceCheckUtils]: 34: Hoare triple {2261#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2268#(and (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:07:35,860 INFO L290 TraceCheckUtils]: 35: Hoare triple {2268#(and (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2272#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:07:35,866 INFO L290 TraceCheckUtils]: 36: Hoare triple {2272#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2276#(and (= main_~xy~0 0) (= (+ main_~X~0 main_~v~0) (* main_~Y~0 6)) (= main_~yx~0 (* (div (+ (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0)))} is VALID [2022-04-08 11:07:35,869 INFO L272 TraceCheckUtils]: 37: Hoare triple {2276#(and (= main_~xy~0 0) (= (+ main_~X~0 main_~v~0) (* main_~Y~0 6)) (= main_~yx~0 (* (div (+ (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:07:35,870 INFO L290 TraceCheckUtils]: 38: Hoare triple {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2284#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:35,870 INFO L290 TraceCheckUtils]: 39: Hoare triple {2284#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2156#false} is VALID [2022-04-08 11:07:35,870 INFO L290 TraceCheckUtils]: 40: Hoare triple {2156#false} assume !false; {2156#false} is VALID [2022-04-08 11:07:35,871 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 2 proven. 11 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-08 11:07:35,871 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:07:38,352 INFO L290 TraceCheckUtils]: 40: Hoare triple {2156#false} assume !false; {2156#false} is VALID [2022-04-08 11:07:38,352 INFO L290 TraceCheckUtils]: 39: Hoare triple {2284#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2156#false} is VALID [2022-04-08 11:07:38,353 INFO L290 TraceCheckUtils]: 38: Hoare triple {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2284#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:38,354 INFO L272 TraceCheckUtils]: 37: Hoare triple {2300#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:07:38,354 INFO L290 TraceCheckUtils]: 36: Hoare triple {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2300#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:07:38,356 INFO L290 TraceCheckUtils]: 35: Hoare triple {2308#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:38,357 INFO L290 TraceCheckUtils]: 34: Hoare triple {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2308#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:07:38,357 INFO L290 TraceCheckUtils]: 33: Hoare triple {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:38,358 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} {2318#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {2304#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:38,358 INFO L290 TraceCheckUtils]: 31: Hoare triple {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:38,359 INFO L290 TraceCheckUtils]: 30: Hoare triple {2328#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {2225#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:38,359 INFO L290 TraceCheckUtils]: 29: Hoare triple {2155#true} ~cond := #in~cond; {2328#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:07:38,359 INFO L272 TraceCheckUtils]: 28: Hoare triple {2318#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 27: Hoare triple {2155#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2318#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 26: Hoare triple {2155#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 25: Hoare triple {2155#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 24: Hoare triple {2155#true} assume !!(~x~0 <= ~X~0); {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2155#true} {2155#true} #65#return; {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 22: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:38,360 INFO L290 TraceCheckUtils]: 21: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 20: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L272 TraceCheckUtils]: 19: Hoare triple {2155#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 18: Hoare triple {2155#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 17: Hoare triple {2155#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2155#true} {2155#true} #63#return; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 15: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 14: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 13: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L272 TraceCheckUtils]: 12: Hoare triple {2155#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L290 TraceCheckUtils]: 11: Hoare triple {2155#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2155#true} is VALID [2022-04-08 11:07:38,361 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2155#true} {2155#true} #61#return; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 9: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 8: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 7: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L272 TraceCheckUtils]: 6: Hoare triple {2155#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 5: Hoare triple {2155#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L272 TraceCheckUtils]: 4: Hoare triple {2155#true} call #t~ret8 := main(); {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2155#true} {2155#true} #69#return; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 2: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L290 TraceCheckUtils]: 1: Hoare triple {2155#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(15, 2);call #Ultimate.allocInit(12, 3); {2155#true} is VALID [2022-04-08 11:07:38,362 INFO L272 TraceCheckUtils]: 0: Hoare triple {2155#true} call ULTIMATE.init(); {2155#true} is VALID [2022-04-08 11:07:38,363 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 13 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-08 11:07:38,363 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:07:38,363 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1057609610] [2022-04-08 11:07:38,363 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:07:38,363 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [370353465] [2022-04-08 11:07:38,363 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [370353465] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:07:38,363 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:07:38,363 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 10] total 18 [2022-04-08 11:07:38,363 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:07:38,363 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1520887456] [2022-04-08 11:07:38,364 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1520887456] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:07:38,364 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:07:38,364 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 11:07:38,364 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [945266947] [2022-04-08 11:07:38,364 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:07:38,364 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:07:38,364 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:07:38,364 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:38,398 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:38,398 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-08 11:07:38,398 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:38,398 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-08 11:07:38,398 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=47, Invalid=259, Unknown=0, NotChecked=0, Total=306 [2022-04-08 11:07:38,399 INFO L87 Difference]: Start difference. First operand 43 states and 47 transitions. Second operand has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:39,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:39,521 INFO L93 Difference]: Finished difference Result 61 states and 69 transitions. [2022-04-08 11:07:39,521 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 11:07:39,521 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:07:39,522 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:07:39,522 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:39,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-08 11:07:39,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:39,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-08 11:07:39,524 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 58 transitions. [2022-04-08 11:07:39,583 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:39,584 INFO L225 Difference]: With dead ends: 61 [2022-04-08 11:07:39,584 INFO L226 Difference]: Without dead ends: 57 [2022-04-08 11:07:39,584 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 85 GetRequests, 63 SyntacticMatches, 2 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 57 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=75, Invalid=387, Unknown=0, NotChecked=0, Total=462 [2022-04-08 11:07:39,585 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 18 mSDsluCounter, 125 mSDsCounter, 0 mSdLazyCounter, 248 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 19 SdHoareTripleChecker+Valid, 149 SdHoareTripleChecker+Invalid, 256 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 248 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-08 11:07:39,585 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [19 Valid, 149 Invalid, 256 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 248 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-08 11:07:39,585 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2022-04-08 11:07:39,634 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 55. [2022-04-08 11:07:39,634 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:07:39,635 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:39,635 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:39,635 INFO L87 Difference]: Start difference. First operand 57 states. Second operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:39,637 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:39,637 INFO L93 Difference]: Finished difference Result 57 states and 64 transitions. [2022-04-08 11:07:39,637 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 64 transitions. [2022-04-08 11:07:39,637 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:39,637 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:39,637 INFO L74 IsIncluded]: Start isIncluded. First operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 57 states. [2022-04-08 11:07:39,637 INFO L87 Difference]: Start difference. First operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 57 states. [2022-04-08 11:07:39,639 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:39,639 INFO L93 Difference]: Finished difference Result 57 states and 64 transitions. [2022-04-08 11:07:39,639 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 64 transitions. [2022-04-08 11:07:39,639 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:39,639 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:39,639 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:07:39,639 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:07:39,639 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 55 states, 38 states have (on average 1.131578947368421) internal successors, (43), 40 states have internal predecessors, (43), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:39,640 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 61 transitions. [2022-04-08 11:07:39,641 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 61 transitions. Word has length 41 [2022-04-08 11:07:39,641 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:07:39,641 INFO L478 AbstractCegarLoop]: Abstraction has 55 states and 61 transitions. [2022-04-08 11:07:39,641 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 11 states have (on average 2.090909090909091) internal successors, (23), 12 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:39,641 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 55 states and 61 transitions. [2022-04-08 11:07:39,728 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:39,728 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 61 transitions. [2022-04-08 11:07:39,728 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-08 11:07:39,729 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:07:39,729 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:07:39,755 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-04-08 11:07:39,939 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:39,940 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:07:39,940 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:07:39,940 INFO L85 PathProgramCache]: Analyzing trace with hash -1786011109, now seen corresponding path program 1 times [2022-04-08 11:07:39,940 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:39,940 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1383087200] [2022-04-08 11:07:39,941 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:07:39,941 INFO L85 PathProgramCache]: Analyzing trace with hash -1786011109, now seen corresponding path program 2 times [2022-04-08 11:07:39,941 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:07:39,941 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [157711727] [2022-04-08 11:07:39,941 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:07:39,941 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:07:39,951 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:07:39,952 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [108521761] [2022-04-08 11:07:39,952 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:07:39,952 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:39,952 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:07:39,953 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:07:39,955 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-08 11:07:39,995 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:07:39,995 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:07:39,996 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-08 11:07:40,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:07:40,011 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:07:40,314 INFO L272 TraceCheckUtils]: 0: Hoare triple {2772#true} call ULTIMATE.init(); {2772#true} is VALID [2022-04-08 11:07:40,314 INFO L290 TraceCheckUtils]: 1: Hoare triple {2772#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(15, 2);call #Ultimate.allocInit(12, 3); {2772#true} is VALID [2022-04-08 11:07:40,314 INFO L290 TraceCheckUtils]: 2: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2772#true} {2772#true} #69#return; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L272 TraceCheckUtils]: 4: Hoare triple {2772#true} call #t~ret8 := main(); {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 5: Hoare triple {2772#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L272 TraceCheckUtils]: 6: Hoare triple {2772#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 7: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 8: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 9: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2772#true} {2772#true} #61#return; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 11: Hoare triple {2772#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L272 TraceCheckUtils]: 12: Hoare triple {2772#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:40,315 INFO L290 TraceCheckUtils]: 13: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:40,316 INFO L290 TraceCheckUtils]: 14: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:40,316 INFO L290 TraceCheckUtils]: 15: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:40,316 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2772#true} {2772#true} #63#return; {2772#true} is VALID [2022-04-08 11:07:40,316 INFO L290 TraceCheckUtils]: 17: Hoare triple {2772#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,317 INFO L290 TraceCheckUtils]: 18: Hoare triple {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,317 INFO L272 TraceCheckUtils]: 19: Hoare triple {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:40,317 INFO L290 TraceCheckUtils]: 20: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:40,317 INFO L290 TraceCheckUtils]: 21: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:40,317 INFO L290 TraceCheckUtils]: 22: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:40,318 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2772#true} {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,318 INFO L290 TraceCheckUtils]: 24: Hoare triple {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,319 INFO L290 TraceCheckUtils]: 25: Hoare triple {2828#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2853#(and (= main_~x~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,319 INFO L290 TraceCheckUtils]: 26: Hoare triple {2853#(and (= main_~x~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,320 INFO L290 TraceCheckUtils]: 27: Hoare triple {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2861#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:07:40,320 INFO L272 TraceCheckUtils]: 28: Hoare triple {2861#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:40,320 INFO L290 TraceCheckUtils]: 29: Hoare triple {2772#true} ~cond := #in~cond; {2868#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:40,320 INFO L290 TraceCheckUtils]: 30: Hoare triple {2868#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:40,321 INFO L290 TraceCheckUtils]: 31: Hoare triple {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:40,322 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} {2861#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,322 INFO L290 TraceCheckUtils]: 33: Hoare triple {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:07:40,323 INFO L290 TraceCheckUtils]: 34: Hoare triple {2857#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2885#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 1) (= main_~x~0 1))} is VALID [2022-04-08 11:07:40,323 INFO L290 TraceCheckUtils]: 35: Hoare triple {2885#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 1) (= main_~x~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2889#(and (= (+ (- 1) main_~x~0) 1) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 1))} is VALID [2022-04-08 11:07:40,324 INFO L290 TraceCheckUtils]: 36: Hoare triple {2889#(and (= (+ (- 1) main_~x~0) 1) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 1))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2893#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~Y~0 2) main_~yx~0) (= main_~X~0 main_~xy~0))} is VALID [2022-04-08 11:07:40,325 INFO L272 TraceCheckUtils]: 37: Hoare triple {2893#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~Y~0 2) main_~yx~0) (= main_~X~0 main_~xy~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:07:40,325 INFO L290 TraceCheckUtils]: 38: Hoare triple {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2901#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:40,326 INFO L290 TraceCheckUtils]: 39: Hoare triple {2901#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2773#false} is VALID [2022-04-08 11:07:40,326 INFO L290 TraceCheckUtils]: 40: Hoare triple {2773#false} assume !false; {2773#false} is VALID [2022-04-08 11:07:40,326 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 6 proven. 10 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-08 11:07:40,326 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:07:43,844 INFO L290 TraceCheckUtils]: 40: Hoare triple {2773#false} assume !false; {2773#false} is VALID [2022-04-08 11:07:43,845 INFO L290 TraceCheckUtils]: 39: Hoare triple {2901#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2773#false} is VALID [2022-04-08 11:07:43,845 INFO L290 TraceCheckUtils]: 38: Hoare triple {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2901#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:07:43,846 INFO L272 TraceCheckUtils]: 37: Hoare triple {2917#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:07:43,847 INFO L290 TraceCheckUtils]: 36: Hoare triple {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2917#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:07:43,848 INFO L290 TraceCheckUtils]: 35: Hoare triple {2925#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:43,849 INFO L290 TraceCheckUtils]: 34: Hoare triple {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2925#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:07:43,850 INFO L290 TraceCheckUtils]: 33: Hoare triple {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:43,851 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} {2935#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {2921#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:07:43,851 INFO L290 TraceCheckUtils]: 31: Hoare triple {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:43,851 INFO L290 TraceCheckUtils]: 30: Hoare triple {2945#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {2872#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:07:43,852 INFO L290 TraceCheckUtils]: 29: Hoare triple {2772#true} ~cond := #in~cond; {2945#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:07:43,852 INFO L272 TraceCheckUtils]: 28: Hoare triple {2935#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:43,852 INFO L290 TraceCheckUtils]: 27: Hoare triple {2772#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2935#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:07:43,852 INFO L290 TraceCheckUtils]: 26: Hoare triple {2772#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2772#true} is VALID [2022-04-08 11:07:43,852 INFO L290 TraceCheckUtils]: 25: Hoare triple {2772#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 24: Hoare triple {2772#true} assume !!(~x~0 <= ~X~0); {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2772#true} {2772#true} #65#return; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 22: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 21: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 20: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L272 TraceCheckUtils]: 19: Hoare triple {2772#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 18: Hoare triple {2772#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 17: Hoare triple {2772#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2772#true} {2772#true} #63#return; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 15: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 14: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:43,853 INFO L290 TraceCheckUtils]: 13: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L272 TraceCheckUtils]: 12: Hoare triple {2772#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 11: Hoare triple {2772#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2772#true} {2772#true} #61#return; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 9: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 8: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 7: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L272 TraceCheckUtils]: 6: Hoare triple {2772#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 5: Hoare triple {2772#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L272 TraceCheckUtils]: 4: Hoare triple {2772#true} call #t~ret8 := main(); {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2772#true} {2772#true} #69#return; {2772#true} is VALID [2022-04-08 11:07:43,854 INFO L290 TraceCheckUtils]: 2: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-08 11:07:43,855 INFO L290 TraceCheckUtils]: 1: Hoare triple {2772#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(15, 2);call #Ultimate.allocInit(12, 3); {2772#true} is VALID [2022-04-08 11:07:43,855 INFO L272 TraceCheckUtils]: 0: Hoare triple {2772#true} call ULTIMATE.init(); {2772#true} is VALID [2022-04-08 11:07:43,855 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 13 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-08 11:07:43,855 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:07:43,855 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [157711727] [2022-04-08 11:07:43,855 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:07:43,855 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [108521761] [2022-04-08 11:07:43,855 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [108521761] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:07:43,855 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:07:43,855 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 10] total 18 [2022-04-08 11:07:43,856 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:07:43,856 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1383087200] [2022-04-08 11:07:43,856 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1383087200] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:07:43,856 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:07:43,856 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 11:07:43,856 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [592655689] [2022-04-08 11:07:43,856 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:07:43,856 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:07:43,857 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:07:43,857 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:43,885 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:43,885 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-08 11:07:43,885 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:43,885 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-08 11:07:43,885 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=255, Unknown=0, NotChecked=0, Total=306 [2022-04-08 11:07:43,886 INFO L87 Difference]: Start difference. First operand 55 states and 61 transitions. Second operand has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:44,568 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:44,568 INFO L93 Difference]: Finished difference Result 72 states and 79 transitions. [2022-04-08 11:07:44,569 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 11:07:44,569 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:07:44,569 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:07:44,569 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:44,570 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-08 11:07:44,570 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:44,571 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-08 11:07:44,571 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 58 transitions. [2022-04-08 11:07:44,613 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:44,614 INFO L225 Difference]: With dead ends: 72 [2022-04-08 11:07:44,614 INFO L226 Difference]: Without dead ends: 70 [2022-04-08 11:07:44,614 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 84 GetRequests, 62 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 44 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=71, Invalid=349, Unknown=0, NotChecked=0, Total=420 [2022-04-08 11:07:44,615 INFO L913 BasicCegarLoop]: 23 mSDtfsCounter, 16 mSDsluCounter, 163 mSDsCounter, 0 mSdLazyCounter, 336 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 186 SdHoareTripleChecker+Invalid, 341 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 336 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-08 11:07:44,615 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [17 Valid, 186 Invalid, 341 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 336 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-08 11:07:44,615 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-04-08 11:07:44,673 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 59. [2022-04-08 11:07:44,673 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:07:44,673 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:44,673 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:44,674 INFO L87 Difference]: Start difference. First operand 70 states. Second operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:44,675 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:44,675 INFO L93 Difference]: Finished difference Result 70 states and 77 transitions. [2022-04-08 11:07:44,675 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 77 transitions. [2022-04-08 11:07:44,676 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:44,676 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:44,676 INFO L74 IsIncluded]: Start isIncluded. First operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 70 states. [2022-04-08 11:07:44,676 INFO L87 Difference]: Start difference. First operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 70 states. [2022-04-08 11:07:44,677 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:07:44,677 INFO L93 Difference]: Finished difference Result 70 states and 77 transitions. [2022-04-08 11:07:44,677 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 77 transitions. [2022-04-08 11:07:44,678 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:07:44,678 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:07:44,678 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:07:44,678 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:07:44,678 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 59 states, 41 states have (on average 1.1219512195121952) internal successors, (46), 43 states have internal predecessors, (46), 10 states have call successors, (10), 8 states have call predecessors, (10), 7 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-08 11:07:44,679 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 64 transitions. [2022-04-08 11:07:44,679 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 64 transitions. Word has length 41 [2022-04-08 11:07:44,679 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:07:44,679 INFO L478 AbstractCegarLoop]: Abstraction has 59 states and 64 transitions. [2022-04-08 11:07:44,680 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 11 states have (on average 2.3636363636363638) internal successors, (26), 12 states have internal predecessors, (26), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:07:44,680 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 59 states and 64 transitions. [2022-04-08 11:07:44,774 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:07:44,775 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 64 transitions. [2022-04-08 11:07:44,775 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-08 11:07:44,775 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:07:44,775 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:07:44,791 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-04-08 11:07:44,983 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:44,983 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:07:44,984 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:07:44,984 INFO L85 PathProgramCache]: Analyzing trace with hash -287119529, now seen corresponding path program 3 times [2022-04-08 11:07:44,984 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:07:44,984 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1005162183] [2022-04-08 11:07:44,984 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:07:44,985 INFO L85 PathProgramCache]: Analyzing trace with hash -287119529, now seen corresponding path program 4 times [2022-04-08 11:07:44,985 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:07:44,985 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [442451422] [2022-04-08 11:07:44,985 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:07:44,985 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:07:44,994 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:07:44,994 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [278733123] [2022-04-08 11:07:44,994 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:07:44,994 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:07:44,994 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:07:44,995 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:07:44,996 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-08 11:07:45,042 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:07:45,042 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:07:45,043 INFO L263 TraceCheckSpWp]: Trace formula consists of 85 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-08 11:07:45,052 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:07:45,054 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:07:56,304 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:08:00,985 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:08:03,366 INFO L272 TraceCheckUtils]: 0: Hoare triple {3443#true} call ULTIMATE.init(); {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 1: Hoare triple {3443#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(15, 2);call #Ultimate.allocInit(12, 3); {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 2: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3443#true} {3443#true} #69#return; {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L272 TraceCheckUtils]: 4: Hoare triple {3443#true} call #t~ret8 := main(); {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 5: Hoare triple {3443#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L272 TraceCheckUtils]: 6: Hoare triple {3443#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 7: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 8: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-08 11:08:03,366 INFO L290 TraceCheckUtils]: 9: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3443#true} {3443#true} #61#return; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L290 TraceCheckUtils]: 11: Hoare triple {3443#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L272 TraceCheckUtils]: 12: Hoare triple {3443#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L290 TraceCheckUtils]: 13: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L290 TraceCheckUtils]: 14: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L290 TraceCheckUtils]: 15: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3443#true} {3443#true} #63#return; {3443#true} is VALID [2022-04-08 11:08:03,367 INFO L290 TraceCheckUtils]: 17: Hoare triple {3443#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:08:03,368 INFO L290 TraceCheckUtils]: 18: Hoare triple {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:08:03,368 INFO L272 TraceCheckUtils]: 19: Hoare triple {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:03,368 INFO L290 TraceCheckUtils]: 20: Hoare triple {3443#true} ~cond := #in~cond; {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:03,369 INFO L290 TraceCheckUtils]: 21: Hoare triple {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:03,369 INFO L290 TraceCheckUtils]: 22: Hoare triple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:03,369 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} #65#return; {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:08:03,370 INFO L290 TraceCheckUtils]: 24: Hoare triple {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !!(~x~0 <= ~X~0); {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:08:03,371 INFO L290 TraceCheckUtils]: 25: Hoare triple {3499#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {3526#(and (= main_~x~0 0) (not (< (* main_~Y~0 2) main_~X~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} is VALID [2022-04-08 11:08:03,371 INFO L290 TraceCheckUtils]: 26: Hoare triple {3526#(and (= main_~x~0 0) (not (< (* main_~Y~0 2) main_~X~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3530#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} is VALID [2022-04-08 11:08:03,371 INFO L290 TraceCheckUtils]: 27: Hoare triple {3530#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3534#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} is VALID [2022-04-08 11:08:03,372 INFO L272 TraceCheckUtils]: 28: Hoare triple {3534#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:03,372 INFO L290 TraceCheckUtils]: 29: Hoare triple {3443#true} ~cond := #in~cond; {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:03,372 INFO L290 TraceCheckUtils]: 30: Hoare triple {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:03,372 INFO L290 TraceCheckUtils]: 31: Hoare triple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:03,374 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} {3534#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} #65#return; {3550#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} is VALID [2022-04-08 11:08:03,374 INFO L290 TraceCheckUtils]: 33: Hoare triple {3550#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} assume !!(~x~0 <= ~X~0); {3550#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} is VALID [2022-04-08 11:08:03,375 INFO L290 TraceCheckUtils]: 34: Hoare triple {3550#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3557#(and (= (+ (- 1) main_~x~0) 0) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (not (< (* main_~Y~0 2) main_~X~0)) (< (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)) (<= (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 2)) (+ (* main_~X~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:08:03,376 INFO L290 TraceCheckUtils]: 35: Hoare triple {3557#(and (= (+ (- 1) main_~x~0) 0) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (not (< (* main_~Y~0 2) main_~X~0)) (< (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)) (<= (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 2)) (+ (* main_~X~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3561#(and (not (< (* main_~Y~0 2) main_~X~0)) (<= (* (* main_~X~0 main_~y~0) 2) (* main_~X~0 2)) (< (* main_~Y~0 4) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)) (= main_~x~0 2) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 6))))} is VALID [2022-04-08 11:08:03,377 INFO L290 TraceCheckUtils]: 36: Hoare triple {3561#(and (not (< (* main_~Y~0 2) main_~X~0)) (<= (* (* main_~X~0 main_~y~0) 2) (* main_~X~0 2)) (< (* main_~Y~0 4) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)) (= main_~x~0 2) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 6))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3565#(and (not (< (* main_~Y~0 2) main_~X~0)) (= (* main_~Y~0 2) main_~yx~0) (< (* main_~Y~0 4) (+ main_~X~0 (* (* (div main_~xy~0 main_~X~0) main_~X~0) 2))) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 6) (* (- 2) (div main_~xy~0 main_~X~0) main_~X~0))) (<= (* (* (div main_~xy~0 main_~X~0) main_~X~0) 2) (* main_~X~0 2)) (= (mod main_~xy~0 main_~X~0) 0))} is VALID [2022-04-08 11:08:03,379 INFO L272 TraceCheckUtils]: 37: Hoare triple {3565#(and (not (< (* main_~Y~0 2) main_~X~0)) (= (* main_~Y~0 2) main_~yx~0) (< (* main_~Y~0 4) (+ main_~X~0 (* (* (div main_~xy~0 main_~X~0) main_~X~0) 2))) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 6) (* (- 2) (div main_~xy~0 main_~X~0) main_~X~0))) (<= (* (* (div main_~xy~0 main_~X~0) main_~X~0) 2) (* main_~X~0 2)) (= (mod main_~xy~0 main_~X~0) 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:03,379 INFO L290 TraceCheckUtils]: 38: Hoare triple {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3573#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:03,379 INFO L290 TraceCheckUtils]: 39: Hoare triple {3573#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3444#false} is VALID [2022-04-08 11:08:03,379 INFO L290 TraceCheckUtils]: 40: Hoare triple {3444#false} assume !false; {3444#false} is VALID [2022-04-08 11:08:03,380 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 2 proven. 11 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-08 11:08:03,380 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:08:08,179 INFO L290 TraceCheckUtils]: 40: Hoare triple {3444#false} assume !false; {3444#false} is VALID [2022-04-08 11:08:08,180 INFO L290 TraceCheckUtils]: 39: Hoare triple {3573#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3444#false} is VALID [2022-04-08 11:08:08,180 INFO L290 TraceCheckUtils]: 38: Hoare triple {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3573#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:08,181 INFO L272 TraceCheckUtils]: 37: Hoare triple {3589#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:08,182 INFO L290 TraceCheckUtils]: 36: Hoare triple {3593#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3589#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:08:08,183 INFO L290 TraceCheckUtils]: 35: Hoare triple {3597#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3593#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:08,184 INFO L290 TraceCheckUtils]: 34: Hoare triple {3601#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3597#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:08:08,184 INFO L290 TraceCheckUtils]: 33: Hoare triple {3601#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !!(~x~0 <= ~X~0); {3601#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:08:08,185 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} {3608#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} #65#return; {3601#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:08:08,185 INFO L290 TraceCheckUtils]: 31: Hoare triple {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:08,186 INFO L290 TraceCheckUtils]: 30: Hoare triple {3618#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3513#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:08,186 INFO L290 TraceCheckUtils]: 29: Hoare triple {3443#true} ~cond := #in~cond; {3618#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:08:08,186 INFO L272 TraceCheckUtils]: 28: Hoare triple {3608#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 27: Hoare triple {3443#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3608#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 26: Hoare triple {3443#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 25: Hoare triple {3443#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 24: Hoare triple {3443#true} assume !!(~x~0 <= ~X~0); {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3443#true} {3443#true} #65#return; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 22: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 21: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 20: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L272 TraceCheckUtils]: 19: Hoare triple {3443#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 18: Hoare triple {3443#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3443#true} is VALID [2022-04-08 11:08:08,187 INFO L290 TraceCheckUtils]: 17: Hoare triple {3443#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3443#true} {3443#true} #63#return; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 15: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 14: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 13: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L272 TraceCheckUtils]: 12: Hoare triple {3443#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 11: Hoare triple {3443#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3443#true} {3443#true} #61#return; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 9: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 8: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 7: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L272 TraceCheckUtils]: 6: Hoare triple {3443#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {3443#true} is VALID [2022-04-08 11:08:08,188 INFO L290 TraceCheckUtils]: 5: Hoare triple {3443#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L272 TraceCheckUtils]: 4: Hoare triple {3443#true} call #t~ret8 := main(); {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3443#true} {3443#true} #69#return; {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L290 TraceCheckUtils]: 2: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L290 TraceCheckUtils]: 1: Hoare triple {3443#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(15, 2);call #Ultimate.allocInit(12, 3); {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L272 TraceCheckUtils]: 0: Hoare triple {3443#true} call ULTIMATE.init(); {3443#true} is VALID [2022-04-08 11:08:08,189 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 13 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-08 11:08:08,189 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:08:08,189 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [442451422] [2022-04-08 11:08:08,189 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:08:08,189 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [278733123] [2022-04-08 11:08:08,189 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [278733123] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:08:08,190 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:08:08,190 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 11] total 20 [2022-04-08 11:08:08,190 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:08:08,190 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1005162183] [2022-04-08 11:08:08,190 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1005162183] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:08:08,190 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:08:08,190 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 11:08:08,190 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2132441746] [2022-04-08 11:08:08,190 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:08:08,191 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:08:08,191 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:08:08,191 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:08,221 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:08,221 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 11:08:08,221 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:08,222 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 11:08:08,222 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=319, Unknown=1, NotChecked=0, Total=380 [2022-04-08 11:08:08,222 INFO L87 Difference]: Start difference. First operand 59 states and 64 transitions. Second operand has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:10,655 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:08:13,044 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:08:20,431 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.17s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:08:20,936 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:20,936 INFO L93 Difference]: Finished difference Result 86 states and 98 transitions. [2022-04-08 11:08:20,936 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-08 11:08:20,936 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:08:20,937 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:08:20,937 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:20,938 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 70 transitions. [2022-04-08 11:08:20,938 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:20,939 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 70 transitions. [2022-04-08 11:08:20,939 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 70 transitions. [2022-04-08 11:08:20,996 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 70 edges. 70 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:20,997 INFO L225 Difference]: With dead ends: 86 [2022-04-08 11:08:20,997 INFO L226 Difference]: Without dead ends: 73 [2022-04-08 11:08:20,998 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 61 SyntacticMatches, 2 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 71 ImplicationChecksByTransitivity, 4.6s TimeCoverageRelationStatistics Valid=98, Invalid=500, Unknown=2, NotChecked=0, Total=600 [2022-04-08 11:08:20,998 INFO L913 BasicCegarLoop]: 26 mSDtfsCounter, 15 mSDsluCounter, 158 mSDsCounter, 0 mSdLazyCounter, 299 mSolverCounterSat, 6 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 5.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 16 SdHoareTripleChecker+Valid, 184 SdHoareTripleChecker+Invalid, 307 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 299 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 5.5s IncrementalHoareTripleChecker+Time [2022-04-08 11:08:20,999 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [16 Valid, 184 Invalid, 307 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 299 Invalid, 2 Unknown, 0 Unchecked, 5.5s Time] [2022-04-08 11:08:20,999 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2022-04-08 11:08:21,092 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 73. [2022-04-08 11:08:21,093 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:08:21,093 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:21,093 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:21,093 INFO L87 Difference]: Start difference. First operand 73 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:21,097 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:21,097 INFO L93 Difference]: Finished difference Result 73 states and 80 transitions. [2022-04-08 11:08:21,097 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-08 11:08:21,097 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:21,097 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:21,098 INFO L74 IsIncluded]: Start isIncluded. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 73 states. [2022-04-08 11:08:21,098 INFO L87 Difference]: Start difference. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 73 states. [2022-04-08 11:08:21,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:21,099 INFO L93 Difference]: Finished difference Result 73 states and 80 transitions. [2022-04-08 11:08:21,099 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-08 11:08:21,099 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:21,100 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:21,100 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:08:21,100 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:08:21,105 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:21,107 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-08 11:08:21,107 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 41 [2022-04-08 11:08:21,107 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:08:21,107 INFO L478 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-08 11:08:21,108 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 12 states have (on average 1.9166666666666667) internal successors, (23), 13 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:21,108 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-08 11:08:21,246 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:21,246 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-08 11:08:21,246 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-08 11:08:21,247 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:08:21,247 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:08:21,252 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-04-08 11:08:21,447 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:21,449 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:08:21,450 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:08:21,451 INFO L85 PathProgramCache]: Analyzing trace with hash 1487887833, now seen corresponding path program 3 times [2022-04-08 11:08:21,451 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:21,451 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1291127841] [2022-04-08 11:08:21,451 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:08:21,451 INFO L85 PathProgramCache]: Analyzing trace with hash 1487887833, now seen corresponding path program 4 times [2022-04-08 11:08:21,451 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:08:21,451 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1430115028] [2022-04-08 11:08:21,451 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:08:21,451 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:08:21,460 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:08:21,460 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1576603581] [2022-04-08 11:08:21,461 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:08:21,461 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:21,461 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:08:21,462 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:08:21,462 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-04-08 11:08:21,511 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:08:21,512 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:08:21,512 INFO L263 TraceCheckSpWp]: Trace formula consists of 87 conjuncts, 27 conjunts are in the unsatisfiable core [2022-04-08 11:08:21,521 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:08:21,522 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:08:21,805 INFO L272 TraceCheckUtils]: 0: Hoare triple {4182#true} call ULTIMATE.init(); {4182#true} is VALID [2022-04-08 11:08:21,805 INFO L290 TraceCheckUtils]: 1: Hoare triple {4182#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(15, 2);call #Ultimate.allocInit(12, 3); {4182#true} is VALID [2022-04-08 11:08:21,805 INFO L290 TraceCheckUtils]: 2: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:21,805 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4182#true} {4182#true} #69#return; {4182#true} is VALID [2022-04-08 11:08:21,805 INFO L272 TraceCheckUtils]: 4: Hoare triple {4182#true} call #t~ret8 := main(); {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 5: Hoare triple {4182#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L272 TraceCheckUtils]: 6: Hoare triple {4182#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 7: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 8: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 9: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4182#true} {4182#true} #61#return; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 11: Hoare triple {4182#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L272 TraceCheckUtils]: 12: Hoare triple {4182#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 13: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 14: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L290 TraceCheckUtils]: 15: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:21,806 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4182#true} {4182#true} #63#return; {4182#true} is VALID [2022-04-08 11:08:21,807 INFO L290 TraceCheckUtils]: 17: Hoare triple {4182#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:21,807 INFO L290 TraceCheckUtils]: 18: Hoare triple {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:21,807 INFO L272 TraceCheckUtils]: 19: Hoare triple {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:21,807 INFO L290 TraceCheckUtils]: 20: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:21,807 INFO L290 TraceCheckUtils]: 21: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:21,808 INFO L290 TraceCheckUtils]: 22: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:21,808 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4182#true} {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:21,808 INFO L290 TraceCheckUtils]: 24: Hoare triple {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:21,809 INFO L290 TraceCheckUtils]: 25: Hoare triple {4238#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {4263#(and (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,810 INFO L290 TraceCheckUtils]: 26: Hoare triple {4263#(and (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,810 INFO L290 TraceCheckUtils]: 27: Hoare triple {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,810 INFO L272 TraceCheckUtils]: 28: Hoare triple {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:21,810 INFO L290 TraceCheckUtils]: 29: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:21,810 INFO L290 TraceCheckUtils]: 30: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:21,810 INFO L290 TraceCheckUtils]: 31: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:21,811 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4182#true} {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #65#return; {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,811 INFO L290 TraceCheckUtils]: 33: Hoare triple {4267#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !!(~x~0 <= ~X~0); {4289#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,812 INFO L290 TraceCheckUtils]: 34: Hoare triple {4289#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {4293#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 2) main_~y~0) 0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:08:21,813 INFO L290 TraceCheckUtils]: 35: Hoare triple {4293#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 2) main_~y~0) 0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {4297#(and (= (+ (- 2) main_~x~0) 0) (= (+ (- 2) main_~y~0) 0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:08:21,813 INFO L290 TraceCheckUtils]: 36: Hoare triple {4297#(and (= (+ (- 2) main_~x~0) 0) (= (+ (- 2) main_~y~0) 0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4301#(and (= main_~xy~0 (* main_~X~0 2)) (= (* main_~Y~0 2) main_~yx~0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= 1 main_~X~0))} is VALID [2022-04-08 11:08:21,814 INFO L272 TraceCheckUtils]: 37: Hoare triple {4301#(and (= main_~xy~0 (* main_~X~0 2)) (= (* main_~Y~0 2) main_~yx~0) (not (< (+ main_~v~0 (* main_~X~0 2)) (* main_~Y~0 2))) (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (<= 1 main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:21,815 INFO L290 TraceCheckUtils]: 38: Hoare triple {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:21,815 INFO L290 TraceCheckUtils]: 39: Hoare triple {4309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4183#false} is VALID [2022-04-08 11:08:21,815 INFO L290 TraceCheckUtils]: 40: Hoare triple {4183#false} assume !false; {4183#false} is VALID [2022-04-08 11:08:21,815 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 4 proven. 9 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-08 11:08:21,815 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:08:22,180 INFO L290 TraceCheckUtils]: 40: Hoare triple {4183#false} assume !false; {4183#false} is VALID [2022-04-08 11:08:22,181 INFO L290 TraceCheckUtils]: 39: Hoare triple {4309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4183#false} is VALID [2022-04-08 11:08:22,181 INFO L290 TraceCheckUtils]: 38: Hoare triple {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:22,182 INFO L272 TraceCheckUtils]: 37: Hoare triple {4325#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:22,183 INFO L290 TraceCheckUtils]: 36: Hoare triple {4329#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4325#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:08:22,184 INFO L290 TraceCheckUtils]: 35: Hoare triple {4333#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {4329#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:22,186 INFO L290 TraceCheckUtils]: 34: Hoare triple {4337#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {4333#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:08:22,186 INFO L290 TraceCheckUtils]: 33: Hoare triple {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} assume !!(~x~0 <= ~X~0); {4337#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:08:22,187 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4182#true} {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} #65#return; {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:08:22,187 INFO L290 TraceCheckUtils]: 31: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:22,187 INFO L290 TraceCheckUtils]: 30: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:22,187 INFO L290 TraceCheckUtils]: 29: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:22,187 INFO L272 TraceCheckUtils]: 28: Hoare triple {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:22,188 INFO L290 TraceCheckUtils]: 27: Hoare triple {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:08:22,190 INFO L290 TraceCheckUtils]: 26: Hoare triple {4363#(or (< main_~v~0 0) (not (<= (+ main_~x~0 1) main_~X~0)) (= (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2)) (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {4341#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:08:22,191 INFO L290 TraceCheckUtils]: 25: Hoare triple {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {4363#(or (< main_~v~0 0) (not (<= (+ main_~x~0 1) main_~X~0)) (= (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2)) (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2))))} is VALID [2022-04-08 11:08:22,192 INFO L290 TraceCheckUtils]: 24: Hoare triple {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} assume !!(~x~0 <= ~X~0); {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} is VALID [2022-04-08 11:08:22,192 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4182#true} {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} #65#return; {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} is VALID [2022-04-08 11:08:22,192 INFO L290 TraceCheckUtils]: 22: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:22,192 INFO L290 TraceCheckUtils]: 21: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:22,192 INFO L290 TraceCheckUtils]: 20: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:22,193 INFO L272 TraceCheckUtils]: 19: Hoare triple {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:22,193 INFO L290 TraceCheckUtils]: 18: Hoare triple {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} is VALID [2022-04-08 11:08:22,193 INFO L290 TraceCheckUtils]: 17: Hoare triple {4182#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {4367#(or (not (<= (+ main_~x~0 1) main_~X~0)) (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2)) (= (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~y~0 2) main_~X~0)) main_~v~0 (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} is VALID [2022-04-08 11:08:22,194 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4182#true} {4182#true} #63#return; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 15: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 14: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 13: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L272 TraceCheckUtils]: 12: Hoare triple {4182#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 11: Hoare triple {4182#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4182#true} {4182#true} #61#return; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 9: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 8: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 7: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L272 TraceCheckUtils]: 6: Hoare triple {4182#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L290 TraceCheckUtils]: 5: Hoare triple {4182#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {4182#true} is VALID [2022-04-08 11:08:22,194 INFO L272 TraceCheckUtils]: 4: Hoare triple {4182#true} call #t~ret8 := main(); {4182#true} is VALID [2022-04-08 11:08:22,195 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4182#true} {4182#true} #69#return; {4182#true} is VALID [2022-04-08 11:08:22,195 INFO L290 TraceCheckUtils]: 2: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-08 11:08:22,195 INFO L290 TraceCheckUtils]: 1: Hoare triple {4182#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(15, 2);call #Ultimate.allocInit(12, 3); {4182#true} is VALID [2022-04-08 11:08:22,195 INFO L272 TraceCheckUtils]: 0: Hoare triple {4182#true} call ULTIMATE.init(); {4182#true} is VALID [2022-04-08 11:08:22,195 INFO L134 CoverageAnalysis]: Checked inductivity of 21 backedges. 7 proven. 6 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-04-08 11:08:22,195 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:08:22,195 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1430115028] [2022-04-08 11:08:22,195 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:08:22,195 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1576603581] [2022-04-08 11:08:22,195 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1576603581] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:08:22,195 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:08:22,196 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 18 [2022-04-08 11:08:22,196 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:08:22,196 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1291127841] [2022-04-08 11:08:22,196 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1291127841] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:08:22,196 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:08:22,196 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-08 11:08:22,196 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1766380637] [2022-04-08 11:08:22,196 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:08:22,196 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:08:22,197 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:08:22,197 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:22,222 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 35 edges. 35 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:22,223 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-08 11:08:22,223 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:22,223 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-08 11:08:22,223 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=246, Unknown=0, NotChecked=0, Total=306 [2022-04-08 11:08:22,223 INFO L87 Difference]: Start difference. First operand 73 states and 80 transitions. Second operand has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:22,946 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:22,946 INFO L93 Difference]: Finished difference Result 86 states and 95 transitions. [2022-04-08 11:08:22,946 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-08 11:08:22,946 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 41 [2022-04-08 11:08:22,947 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:08:22,947 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:22,948 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-08 11:08:22,948 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:22,949 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-08 11:08:22,949 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 58 transitions. [2022-04-08 11:08:22,997 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:22,998 INFO L225 Difference]: With dead ends: 86 [2022-04-08 11:08:22,998 INFO L226 Difference]: Without dead ends: 84 [2022-04-08 11:08:22,998 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 83 GetRequests, 64 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 35 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=73, Invalid=307, Unknown=0, NotChecked=0, Total=380 [2022-04-08 11:08:22,999 INFO L913 BasicCegarLoop]: 32 mSDtfsCounter, 11 mSDsluCounter, 152 mSDsCounter, 0 mSdLazyCounter, 254 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 11 SdHoareTripleChecker+Valid, 184 SdHoareTripleChecker+Invalid, 257 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 254 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-08 11:08:22,999 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [11 Valid, 184 Invalid, 257 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 254 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-08 11:08:22,999 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-04-08 11:08:23,084 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 73. [2022-04-08 11:08:23,084 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:08:23,084 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:23,085 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:23,085 INFO L87 Difference]: Start difference. First operand 84 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:23,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:23,092 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-08 11:08:23,092 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-08 11:08:23,093 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:23,093 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:23,093 INFO L74 IsIncluded]: Start isIncluded. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 84 states. [2022-04-08 11:08:23,094 INFO L87 Difference]: Start difference. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 84 states. [2022-04-08 11:08:23,096 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:23,096 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-08 11:08:23,096 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-08 11:08:23,096 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:23,096 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:23,096 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:08:23,096 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:08:23,097 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:23,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-08 11:08:23,098 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 41 [2022-04-08 11:08:23,098 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:08:23,098 INFO L478 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-08 11:08:23,098 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 10 states have (on average 2.3) internal successors, (23), 10 states have internal predecessors, (23), 4 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-08 11:08:23,098 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-08 11:08:23,217 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:23,217 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-08 11:08:23,217 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-08 11:08:23,218 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:08:23,218 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:08:23,223 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-04-08 11:08:23,421 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable8 [2022-04-08 11:08:23,422 INFO L403 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:08:23,422 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:08:23,422 INFO L85 PathProgramCache]: Analyzing trace with hash 651179076, now seen corresponding path program 1 times [2022-04-08 11:08:23,422 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:23,422 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [239226638] [2022-04-08 11:08:23,422 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:08:23,423 INFO L85 PathProgramCache]: Analyzing trace with hash 651179076, now seen corresponding path program 2 times [2022-04-08 11:08:23,423 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:08:23,423 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1926865870] [2022-04-08 11:08:23,423 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:08:23,423 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:08:23,437 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:08:23,437 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1241166826] [2022-04-08 11:08:23,437 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:08:23,438 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:23,438 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:08:23,438 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:08:23,439 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-04-08 11:08:23,472 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:08:23,472 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:08:23,472 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 8 conjunts are in the unsatisfiable core [2022-04-08 11:08:23,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:08:23,485 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:08:24,204 INFO L272 TraceCheckUtils]: 0: Hoare triple {4935#true} call ULTIMATE.init(); {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L290 TraceCheckUtils]: 1: Hoare triple {4935#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(15, 2);call #Ultimate.allocInit(12, 3); {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L290 TraceCheckUtils]: 2: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4935#true} {4935#true} #69#return; {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L272 TraceCheckUtils]: 4: Hoare triple {4935#true} call #t~ret8 := main(); {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L290 TraceCheckUtils]: 5: Hoare triple {4935#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L272 TraceCheckUtils]: 6: Hoare triple {4935#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L290 TraceCheckUtils]: 7: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,204 INFO L290 TraceCheckUtils]: 8: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 9: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4935#true} {4935#true} #61#return; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 11: Hoare triple {4935#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L272 TraceCheckUtils]: 12: Hoare triple {4935#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 13: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 14: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 15: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4935#true} {4935#true} #63#return; {4935#true} is VALID [2022-04-08 11:08:24,205 INFO L290 TraceCheckUtils]: 17: Hoare triple {4935#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:08:24,206 INFO L290 TraceCheckUtils]: 18: Hoare triple {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:08:24,206 INFO L272 TraceCheckUtils]: 19: Hoare triple {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,206 INFO L290 TraceCheckUtils]: 20: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,206 INFO L290 TraceCheckUtils]: 21: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,206 INFO L290 TraceCheckUtils]: 22: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,207 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4935#true} {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} #65#return; {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:08:24,207 INFO L290 TraceCheckUtils]: 24: Hoare triple {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !!(~x~0 <= ~X~0); {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:08:24,208 INFO L290 TraceCheckUtils]: 25: Hoare triple {4991#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {5016#(and (<= main_~x~0 0) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-08 11:08:24,209 INFO L290 TraceCheckUtils]: 26: Hoare triple {5016#(and (<= main_~x~0 0) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-08 11:08:24,209 INFO L290 TraceCheckUtils]: 27: Hoare triple {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-08 11:08:24,209 INFO L272 TraceCheckUtils]: 28: Hoare triple {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,209 INFO L290 TraceCheckUtils]: 29: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,209 INFO L290 TraceCheckUtils]: 30: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,210 INFO L290 TraceCheckUtils]: 31: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,210 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4935#true} {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} #65#return; {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-08 11:08:24,210 INFO L290 TraceCheckUtils]: 33: Hoare triple {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !!(~x~0 <= ~X~0); {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-08 11:08:24,211 INFO L290 TraceCheckUtils]: 34: Hoare triple {5020#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5045#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-08 11:08:24,212 INFO L290 TraceCheckUtils]: 35: Hoare triple {5045#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-08 11:08:24,212 INFO L290 TraceCheckUtils]: 36: Hoare triple {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-08 11:08:24,212 INFO L272 TraceCheckUtils]: 37: Hoare triple {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,212 INFO L290 TraceCheckUtils]: 38: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,212 INFO L290 TraceCheckUtils]: 39: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,212 INFO L290 TraceCheckUtils]: 40: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,213 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {4935#true} {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} #65#return; {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-08 11:08:24,213 INFO L290 TraceCheckUtils]: 42: Hoare triple {5049#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !(~x~0 <= ~X~0); {4936#false} is VALID [2022-04-08 11:08:24,213 INFO L290 TraceCheckUtils]: 43: Hoare triple {4936#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {4936#false} is VALID [2022-04-08 11:08:24,213 INFO L272 TraceCheckUtils]: 44: Hoare triple {4936#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {4936#false} is VALID [2022-04-08 11:08:24,214 INFO L290 TraceCheckUtils]: 45: Hoare triple {4936#false} ~cond := #in~cond; {4936#false} is VALID [2022-04-08 11:08:24,214 INFO L290 TraceCheckUtils]: 46: Hoare triple {4936#false} assume 0 == ~cond; {4936#false} is VALID [2022-04-08 11:08:24,214 INFO L290 TraceCheckUtils]: 47: Hoare triple {4936#false} assume !false; {4936#false} is VALID [2022-04-08 11:08:24,214 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 6 proven. 11 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-08 11:08:24,214 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:08:24,474 INFO L290 TraceCheckUtils]: 47: Hoare triple {4936#false} assume !false; {4936#false} is VALID [2022-04-08 11:08:24,474 INFO L290 TraceCheckUtils]: 46: Hoare triple {4936#false} assume 0 == ~cond; {4936#false} is VALID [2022-04-08 11:08:24,474 INFO L290 TraceCheckUtils]: 45: Hoare triple {4936#false} ~cond := #in~cond; {4936#false} is VALID [2022-04-08 11:08:24,474 INFO L272 TraceCheckUtils]: 44: Hoare triple {4936#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {4936#false} is VALID [2022-04-08 11:08:24,474 INFO L290 TraceCheckUtils]: 43: Hoare triple {4936#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {4936#false} is VALID [2022-04-08 11:08:24,474 INFO L290 TraceCheckUtils]: 42: Hoare triple {5101#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {4936#false} is VALID [2022-04-08 11:08:24,475 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {4935#true} {5101#(<= main_~x~0 main_~X~0)} #65#return; {5101#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:08:24,475 INFO L290 TraceCheckUtils]: 40: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,475 INFO L290 TraceCheckUtils]: 39: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,475 INFO L290 TraceCheckUtils]: 38: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,475 INFO L272 TraceCheckUtils]: 37: Hoare triple {5101#(<= main_~x~0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,491 INFO L290 TraceCheckUtils]: 36: Hoare triple {5101#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5101#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:08:24,492 INFO L290 TraceCheckUtils]: 35: Hoare triple {5123#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5101#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:08:24,492 INFO L290 TraceCheckUtils]: 34: Hoare triple {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5123#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-08 11:08:24,493 INFO L290 TraceCheckUtils]: 33: Hoare triple {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !!(~x~0 <= ~X~0); {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:08:24,493 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4935#true} {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} #65#return; {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:08:24,493 INFO L290 TraceCheckUtils]: 31: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,493 INFO L290 TraceCheckUtils]: 30: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,493 INFO L290 TraceCheckUtils]: 29: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,494 INFO L272 TraceCheckUtils]: 28: Hoare triple {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,494 INFO L290 TraceCheckUtils]: 27: Hoare triple {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:08:24,494 INFO L290 TraceCheckUtils]: 26: Hoare triple {5152#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5127#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:08:24,495 INFO L290 TraceCheckUtils]: 25: Hoare triple {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {5152#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-08 11:08:24,495 INFO L290 TraceCheckUtils]: 24: Hoare triple {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume !!(~x~0 <= ~X~0); {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:08:24,496 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {4935#true} {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} #65#return; {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:08:24,496 INFO L290 TraceCheckUtils]: 22: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,496 INFO L290 TraceCheckUtils]: 21: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,496 INFO L290 TraceCheckUtils]: 20: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,496 INFO L272 TraceCheckUtils]: 19: Hoare triple {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,496 INFO L290 TraceCheckUtils]: 18: Hoare triple {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:08:24,497 INFO L290 TraceCheckUtils]: 17: Hoare triple {4935#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {5156#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:08:24,497 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4935#true} {4935#true} #63#return; {4935#true} is VALID [2022-04-08 11:08:24,497 INFO L290 TraceCheckUtils]: 15: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,497 INFO L290 TraceCheckUtils]: 14: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,497 INFO L290 TraceCheckUtils]: 13: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L272 TraceCheckUtils]: 12: Hoare triple {4935#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 11: Hoare triple {4935#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4935#true} {4935#true} #61#return; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 9: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 8: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 7: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L272 TraceCheckUtils]: 6: Hoare triple {4935#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 5: Hoare triple {4935#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L272 TraceCheckUtils]: 4: Hoare triple {4935#true} call #t~ret8 := main(); {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4935#true} {4935#true} #69#return; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 2: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L290 TraceCheckUtils]: 1: Hoare triple {4935#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(15, 2);call #Ultimate.allocInit(12, 3); {4935#true} is VALID [2022-04-08 11:08:24,498 INFO L272 TraceCheckUtils]: 0: Hoare triple {4935#true} call ULTIMATE.init(); {4935#true} is VALID [2022-04-08 11:08:24,499 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 6 proven. 11 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-08 11:08:24,499 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:08:24,499 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1926865870] [2022-04-08 11:08:24,499 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:08:24,499 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1241166826] [2022-04-08 11:08:24,499 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1241166826] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:08:24,499 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:08:24,499 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2022-04-08 11:08:24,499 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:08:24,500 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [239226638] [2022-04-08 11:08:24,500 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [239226638] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:08:24,500 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:08:24,500 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-08 11:08:24,500 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2027158749] [2022-04-08 11:08:24,500 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:08:24,500 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-04-08 11:08:24,500 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:08:24,500 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:24,529 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:24,529 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-08 11:08:24,529 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:24,530 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-08 11:08:24,530 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=93, Unknown=0, NotChecked=0, Total=132 [2022-04-08 11:08:24,530 INFO L87 Difference]: Start difference. First operand 73 states and 80 transitions. Second operand has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:24,904 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:24,904 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2022-04-08 11:08:24,904 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-08 11:08:24,904 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-04-08 11:08:24,904 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:08:24,905 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:24,906 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2022-04-08 11:08:24,906 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:24,909 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2022-04-08 11:08:24,909 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 59 transitions. [2022-04-08 11:08:24,959 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:24,960 INFO L225 Difference]: With dead ends: 87 [2022-04-08 11:08:24,960 INFO L226 Difference]: Without dead ends: 79 [2022-04-08 11:08:24,960 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 95 GetRequests, 85 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 16 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=39, Invalid=93, Unknown=0, NotChecked=0, Total=132 [2022-04-08 11:08:24,961 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 3 mSDsluCounter, 71 mSDsCounter, 0 mSdLazyCounter, 107 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 3 SdHoareTripleChecker+Valid, 102 SdHoareTripleChecker+Invalid, 109 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 107 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:08:24,961 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [3 Valid, 102 Invalid, 109 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 107 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 11:08:24,961 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-04-08 11:08:25,077 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 76. [2022-04-08 11:08:25,077 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:08:25,077 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:08:25,077 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:08:25,078 INFO L87 Difference]: Start difference. First operand 79 states. Second operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:08:25,079 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:25,079 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-08 11:08:25,079 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-08 11:08:25,079 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:25,079 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:25,080 INFO L74 IsIncluded]: Start isIncluded. First operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) Second operand 79 states. [2022-04-08 11:08:25,080 INFO L87 Difference]: Start difference. First operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) Second operand 79 states. [2022-04-08 11:08:25,081 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:25,081 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-08 11:08:25,081 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-08 11:08:25,081 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:25,081 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:25,081 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:08:25,081 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:08:25,082 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 76 states, 54 states have (on average 1.1111111111111112) internal successors, (60), 57 states have internal predecessors, (60), 13 states have call successors, (13), 9 states have call predecessors, (13), 8 states have return successors, (11), 9 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:08:25,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 84 transitions. [2022-04-08 11:08:25,083 INFO L78 Accepts]: Start accepts. Automaton has 76 states and 84 transitions. Word has length 48 [2022-04-08 11:08:25,083 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:08:25,083 INFO L478 AbstractCegarLoop]: Abstraction has 76 states and 84 transitions. [2022-04-08 11:08:25,083 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 3.5714285714285716) internal successors, (25), 7 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:25,083 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 76 states and 84 transitions. [2022-04-08 11:08:25,219 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 84 edges. 84 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:25,219 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 84 transitions. [2022-04-08 11:08:25,219 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-08 11:08:25,219 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:08:25,219 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:08:25,235 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Forceful destruction successful, exit code 0 [2022-04-08 11:08:25,420 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2022-04-08 11:08:25,420 INFO L403 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:08:25,420 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:08:25,420 INFO L85 PathProgramCache]: Analyzing trace with hash -1154259258, now seen corresponding path program 3 times [2022-04-08 11:08:25,420 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:25,421 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [439322748] [2022-04-08 11:08:25,421 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:08:25,421 INFO L85 PathProgramCache]: Analyzing trace with hash -1154259258, now seen corresponding path program 4 times [2022-04-08 11:08:25,421 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:08:25,421 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [819674351] [2022-04-08 11:08:25,421 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:08:25,421 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:08:25,432 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:08:25,432 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1294593248] [2022-04-08 11:08:25,433 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:08:25,433 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:25,433 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:08:25,433 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:08:25,434 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-08 11:08:25,468 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:08:25,469 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:08:25,470 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 35 conjunts are in the unsatisfiable core [2022-04-08 11:08:25,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:08:25,480 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:08:25,996 INFO L272 TraceCheckUtils]: 0: Hoare triple {5718#true} call ULTIMATE.init(); {5718#true} is VALID [2022-04-08 11:08:25,996 INFO L290 TraceCheckUtils]: 1: Hoare triple {5718#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(15, 2);call #Ultimate.allocInit(12, 3); {5718#true} is VALID [2022-04-08 11:08:25,996 INFO L290 TraceCheckUtils]: 2: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5718#true} {5718#true} #69#return; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L272 TraceCheckUtils]: 4: Hoare triple {5718#true} call #t~ret8 := main(); {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 5: Hoare triple {5718#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L272 TraceCheckUtils]: 6: Hoare triple {5718#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 7: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 8: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 9: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5718#true} {5718#true} #61#return; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 11: Hoare triple {5718#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L272 TraceCheckUtils]: 12: Hoare triple {5718#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 13: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 14: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L290 TraceCheckUtils]: 15: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:25,997 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5718#true} {5718#true} #63#return; {5718#true} is VALID [2022-04-08 11:08:25,998 INFO L290 TraceCheckUtils]: 17: Hoare triple {5718#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {5774#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:25,998 INFO L290 TraceCheckUtils]: 18: Hoare triple {5774#(and (= main_~x~0 0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5774#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:25,998 INFO L272 TraceCheckUtils]: 19: Hoare triple {5774#(and (= main_~x~0 0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:25,998 INFO L290 TraceCheckUtils]: 20: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:25,998 INFO L290 TraceCheckUtils]: 21: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:25,998 INFO L290 TraceCheckUtils]: 22: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:25,999 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5718#true} {5774#(and (= main_~x~0 0) (= main_~y~0 0))} #65#return; {5774#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:25,999 INFO L290 TraceCheckUtils]: 24: Hoare triple {5774#(and (= main_~x~0 0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {5774#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:26,000 INFO L290 TraceCheckUtils]: 25: Hoare triple {5774#(and (= main_~x~0 0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5799#(and (= main_~x~0 0) (= main_~y~0 1))} is VALID [2022-04-08 11:08:26,000 INFO L290 TraceCheckUtils]: 26: Hoare triple {5799#(and (= main_~x~0 0) (= main_~y~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5803#(and (= main_~y~0 1) (= main_~x~0 1))} is VALID [2022-04-08 11:08:26,000 INFO L290 TraceCheckUtils]: 27: Hoare triple {5803#(and (= main_~y~0 1) (= main_~x~0 1))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5803#(and (= main_~y~0 1) (= main_~x~0 1))} is VALID [2022-04-08 11:08:26,001 INFO L272 TraceCheckUtils]: 28: Hoare triple {5803#(and (= main_~y~0 1) (= main_~x~0 1))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,001 INFO L290 TraceCheckUtils]: 29: Hoare triple {5718#true} ~cond := #in~cond; {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:26,001 INFO L290 TraceCheckUtils]: 30: Hoare triple {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,001 INFO L290 TraceCheckUtils]: 31: Hoare triple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,002 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} {5803#(and (= main_~y~0 1) (= main_~x~0 1))} #65#return; {5803#(and (= main_~y~0 1) (= main_~x~0 1))} is VALID [2022-04-08 11:08:26,002 INFO L290 TraceCheckUtils]: 33: Hoare triple {5803#(and (= main_~y~0 1) (= main_~x~0 1))} assume !!(~x~0 <= ~X~0); {5827#(and (<= main_~x~0 main_~X~0) (= main_~y~0 1) (= main_~x~0 1))} is VALID [2022-04-08 11:08:26,003 INFO L290 TraceCheckUtils]: 34: Hoare triple {5827#(and (<= main_~x~0 main_~X~0) (= main_~y~0 1) (= main_~x~0 1))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5831#(and (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 1) (= main_~x~0 1))} is VALID [2022-04-08 11:08:26,003 INFO L290 TraceCheckUtils]: 35: Hoare triple {5831#(and (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 1) (= main_~x~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5835#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:08:26,003 INFO L290 TraceCheckUtils]: 36: Hoare triple {5835#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5839#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:08:26,003 INFO L272 TraceCheckUtils]: 37: Hoare triple {5839#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,004 INFO L290 TraceCheckUtils]: 38: Hoare triple {5718#true} ~cond := #in~cond; {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:26,004 INFO L290 TraceCheckUtils]: 39: Hoare triple {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,004 INFO L290 TraceCheckUtils]: 40: Hoare triple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,005 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} {5839#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} #65#return; {5855#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:08:26,006 INFO L290 TraceCheckUtils]: 42: Hoare triple {5855#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {5859#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:08:26,006 INFO L290 TraceCheckUtils]: 43: Hoare triple {5859#(and (= (+ (- 1) main_~x~0) 1) (= (+ (- 1) main_~y~0) 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {5863#(and (= (* main_~y~0 2) main_~xy~0) (= (+ (- 1) main_~y~0) 1) (= (* main_~Y~0 2) main_~yx~0) (<= 1 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 6)) (not (<= 2 main_~X~0)))} is VALID [2022-04-08 11:08:26,007 INFO L272 TraceCheckUtils]: 44: Hoare triple {5863#(and (= (* main_~y~0 2) main_~xy~0) (= (+ (- 1) main_~y~0) 1) (= (* main_~Y~0 2) main_~yx~0) (<= 1 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 6)) (not (<= 2 main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:26,008 INFO L290 TraceCheckUtils]: 45: Hoare triple {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5871#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:26,008 INFO L290 TraceCheckUtils]: 46: Hoare triple {5871#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5719#false} is VALID [2022-04-08 11:08:26,008 INFO L290 TraceCheckUtils]: 47: Hoare triple {5719#false} assume !false; {5719#false} is VALID [2022-04-08 11:08:26,008 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 10 proven. 13 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:08:26,008 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:08:26,564 INFO L290 TraceCheckUtils]: 47: Hoare triple {5719#false} assume !false; {5719#false} is VALID [2022-04-08 11:08:26,564 INFO L290 TraceCheckUtils]: 46: Hoare triple {5871#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5719#false} is VALID [2022-04-08 11:08:26,565 INFO L290 TraceCheckUtils]: 45: Hoare triple {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5871#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:26,566 INFO L272 TraceCheckUtils]: 44: Hoare triple {5887#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:26,566 INFO L290 TraceCheckUtils]: 43: Hoare triple {5891#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {5887#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:26,567 INFO L290 TraceCheckUtils]: 42: Hoare triple {5895#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {5891#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-08 11:08:26,568 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} {5899#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {5895#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:08:26,569 INFO L290 TraceCheckUtils]: 40: Hoare triple {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,569 INFO L290 TraceCheckUtils]: 39: Hoare triple {5909#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {5817#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:26,569 INFO L290 TraceCheckUtils]: 38: Hoare triple {5718#true} ~cond := #in~cond; {5909#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:08:26,569 INFO L272 TraceCheckUtils]: 37: Hoare triple {5899#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,570 INFO L290 TraceCheckUtils]: 36: Hoare triple {5916#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5899#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:08:26,572 INFO L290 TraceCheckUtils]: 35: Hoare triple {5920#(or (<= (+ main_~x~0 1) main_~X~0) (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* (+ main_~x~0 1) main_~Y~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5916#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:08:26,573 INFO L290 TraceCheckUtils]: 34: Hoare triple {5924#(or (= (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1))) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (<= (+ main_~x~0 1) main_~X~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5920#(or (<= (+ main_~x~0 1) main_~X~0) (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* (+ main_~x~0 1) main_~Y~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:08:26,575 INFO L290 TraceCheckUtils]: 33: Hoare triple {5718#true} assume !!(~x~0 <= ~X~0); {5924#(or (= (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1))) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:08:26,575 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5718#true} {5718#true} #65#return; {5718#true} is VALID [2022-04-08 11:08:26,575 INFO L290 TraceCheckUtils]: 31: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:26,575 INFO L290 TraceCheckUtils]: 30: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:26,575 INFO L290 TraceCheckUtils]: 29: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:26,575 INFO L272 TraceCheckUtils]: 28: Hoare triple {5718#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,575 INFO L290 TraceCheckUtils]: 27: Hoare triple {5718#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 26: Hoare triple {5718#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 25: Hoare triple {5718#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 24: Hoare triple {5718#true} assume !!(~x~0 <= ~X~0); {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5718#true} {5718#true} #65#return; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 22: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 21: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 20: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L272 TraceCheckUtils]: 19: Hoare triple {5718#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 18: Hoare triple {5718#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 17: Hoare triple {5718#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5718#true} {5718#true} #63#return; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 15: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 14: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:26,576 INFO L290 TraceCheckUtils]: 13: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L272 TraceCheckUtils]: 12: Hoare triple {5718#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 11: Hoare triple {5718#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5718#true} {5718#true} #61#return; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 9: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 8: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 7: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L272 TraceCheckUtils]: 6: Hoare triple {5718#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 5: Hoare triple {5718#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L272 TraceCheckUtils]: 4: Hoare triple {5718#true} call #t~ret8 := main(); {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5718#true} {5718#true} #69#return; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 2: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L290 TraceCheckUtils]: 1: Hoare triple {5718#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(15, 2);call #Ultimate.allocInit(12, 3); {5718#true} is VALID [2022-04-08 11:08:26,577 INFO L272 TraceCheckUtils]: 0: Hoare triple {5718#true} call ULTIMATE.init(); {5718#true} is VALID [2022-04-08 11:08:26,578 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-08 11:08:26,578 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:08:26,578 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [819674351] [2022-04-08 11:08:26,578 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:08:26,578 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1294593248] [2022-04-08 11:08:26,578 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1294593248] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:08:26,578 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:08:26,578 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 13] total 24 [2022-04-08 11:08:26,578 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:08:26,579 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [439322748] [2022-04-08 11:08:26,579 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [439322748] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:08:26,579 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:08:26,579 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-08 11:08:26,579 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1554512170] [2022-04-08 11:08:26,579 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:08:26,579 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-04-08 11:08:26,579 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:08:26,579 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:26,612 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:26,612 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-08 11:08:26,612 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:26,612 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-08 11:08:26,613 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=475, Unknown=0, NotChecked=0, Total=552 [2022-04-08 11:08:26,613 INFO L87 Difference]: Start difference. First operand 76 states and 84 transitions. Second operand has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:27,534 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:27,534 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2022-04-08 11:08:27,535 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-08 11:08:27,535 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-04-08 11:08:27,535 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:08:27,535 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:27,536 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 61 transitions. [2022-04-08 11:08:27,536 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:27,536 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 61 transitions. [2022-04-08 11:08:27,537 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 61 transitions. [2022-04-08 11:08:27,587 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:27,588 INFO L225 Difference]: With dead ends: 87 [2022-04-08 11:08:27,588 INFO L226 Difference]: Without dead ends: 79 [2022-04-08 11:08:27,589 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 100 GetRequests, 72 SyntacticMatches, 1 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 118 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=119, Invalid=693, Unknown=0, NotChecked=0, Total=812 [2022-04-08 11:08:27,589 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 20 mSDsluCounter, 186 mSDsCounter, 0 mSdLazyCounter, 320 mSolverCounterSat, 6 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 211 SdHoareTripleChecker+Invalid, 326 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 320 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-08 11:08:27,589 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 211 Invalid, 326 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 320 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-08 11:08:27,590 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-04-08 11:08:27,704 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 73. [2022-04-08 11:08:27,705 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:08:27,705 INFO L82 GeneralOperation]: Start isEquivalent. First operand 79 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:27,705 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:27,705 INFO L87 Difference]: Start difference. First operand 79 states. Second operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:27,706 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:27,706 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-08 11:08:27,707 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-08 11:08:27,707 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:27,707 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:27,707 INFO L74 IsIncluded]: Start isIncluded. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 79 states. [2022-04-08 11:08:27,707 INFO L87 Difference]: Start difference. First operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 79 states. [2022-04-08 11:08:27,709 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:27,709 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-08 11:08:27,709 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-08 11:08:27,709 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:27,709 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:27,709 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:08:27,709 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:08:27,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 73 states, 52 states have (on average 1.1153846153846154) internal successors, (58), 54 states have internal predecessors, (58), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:27,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-08 11:08:27,711 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 48 [2022-04-08 11:08:27,711 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:08:27,711 INFO L478 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-08 11:08:27,711 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 14 states have (on average 2.0) internal successors, (28), 14 states have internal predecessors, (28), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:27,711 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-08 11:08:27,845 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 80 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:27,845 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-08 11:08:27,845 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:08:27,845 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:08:27,845 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:08:27,861 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Forceful destruction successful, exit code 0 [2022-04-08 11:08:28,046 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable10 [2022-04-08 11:08:28,046 INFO L403 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:08:28,046 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:08:28,047 INFO L85 PathProgramCache]: Analyzing trace with hash -463038031, now seen corresponding path program 5 times [2022-04-08 11:08:28,047 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:28,047 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [886498571] [2022-04-08 11:08:28,047 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:08:28,047 INFO L85 PathProgramCache]: Analyzing trace with hash -463038031, now seen corresponding path program 6 times [2022-04-08 11:08:28,047 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:08:28,047 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1026831063] [2022-04-08 11:08:28,047 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:08:28,047 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:08:28,059 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:08:28,059 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [926948856] [2022-04-08 11:08:28,060 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:08:28,060 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:28,060 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:08:28,060 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:08:28,061 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Waiting until timeout for monitored process [2022-04-08 11:08:28,097 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 11:08:28,097 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:08:28,098 INFO L263 TraceCheckSpWp]: Trace formula consists of 141 conjuncts, 32 conjunts are in the unsatisfiable core [2022-04-08 11:08:28,109 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:08:28,110 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:08:38,424 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:08:44,580 INFO L272 TraceCheckUtils]: 0: Hoare triple {6517#true} call ULTIMATE.init(); {6517#true} is VALID [2022-04-08 11:08:44,580 INFO L290 TraceCheckUtils]: 1: Hoare triple {6517#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(15, 2);call #Ultimate.allocInit(12, 3); {6517#true} is VALID [2022-04-08 11:08:44,580 INFO L290 TraceCheckUtils]: 2: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:44,580 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6517#true} {6517#true} #69#return; {6517#true} is VALID [2022-04-08 11:08:44,580 INFO L272 TraceCheckUtils]: 4: Hoare triple {6517#true} call #t~ret8 := main(); {6517#true} is VALID [2022-04-08 11:08:44,580 INFO L290 TraceCheckUtils]: 5: Hoare triple {6517#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L272 TraceCheckUtils]: 6: Hoare triple {6517#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 7: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 8: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 9: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6517#true} {6517#true} #61#return; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 11: Hoare triple {6517#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L272 TraceCheckUtils]: 12: Hoare triple {6517#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 13: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 14: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L290 TraceCheckUtils]: 15: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:44,581 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6517#true} {6517#true} #63#return; {6517#true} is VALID [2022-04-08 11:08:44,582 INFO L290 TraceCheckUtils]: 17: Hoare triple {6517#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,582 INFO L290 TraceCheckUtils]: 18: Hoare triple {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,582 INFO L272 TraceCheckUtils]: 19: Hoare triple {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:44,582 INFO L290 TraceCheckUtils]: 20: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:44,582 INFO L290 TraceCheckUtils]: 21: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:44,582 INFO L290 TraceCheckUtils]: 22: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:44,583 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {6517#true} {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} #65#return; {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,583 INFO L290 TraceCheckUtils]: 24: Hoare triple {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,584 INFO L290 TraceCheckUtils]: 25: Hoare triple {6573#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:08:44,584 INFO L290 TraceCheckUtils]: 26: Hoare triple {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:08:44,585 INFO L290 TraceCheckUtils]: 27: Hoare triple {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:08:44,585 INFO L272 TraceCheckUtils]: 28: Hoare triple {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:44,585 INFO L290 TraceCheckUtils]: 29: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:44,585 INFO L290 TraceCheckUtils]: 30: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:44,585 INFO L290 TraceCheckUtils]: 31: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:44,586 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6517#true} {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} #65#return; {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:08:44,586 INFO L290 TraceCheckUtils]: 33: Hoare triple {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume !!(~x~0 <= ~X~0); {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:08:44,587 INFO L290 TraceCheckUtils]: 34: Hoare triple {6598#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6626#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,587 INFO L290 TraceCheckUtils]: 35: Hoare triple {6626#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6626#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,587 INFO L290 TraceCheckUtils]: 36: Hoare triple {6626#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6633#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:08:44,588 INFO L272 TraceCheckUtils]: 37: Hoare triple {6633#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:44,588 INFO L290 TraceCheckUtils]: 38: Hoare triple {6517#true} ~cond := #in~cond; {6640#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:44,588 INFO L290 TraceCheckUtils]: 39: Hoare triple {6640#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:44,588 INFO L290 TraceCheckUtils]: 40: Hoare triple {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:44,590 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} {6633#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {6651#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,590 INFO L290 TraceCheckUtils]: 42: Hoare triple {6651#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {6651#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:08:44,591 INFO L290 TraceCheckUtils]: 43: Hoare triple {6651#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6658#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 6))) (= main_~y~0 0) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} is VALID [2022-04-08 11:08:44,592 INFO L290 TraceCheckUtils]: 44: Hoare triple {6658#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 6))) (= main_~y~0 0) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6662#(and (= main_~y~0 0) (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 6))) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} is VALID [2022-04-08 11:08:44,594 INFO L290 TraceCheckUtils]: 45: Hoare triple {6662#(and (= main_~y~0 0) (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* main_~Y~0 6))) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6666#(and (= main_~xy~0 0) (= (* main_~Y~0 (div (* main_~Y~0 3) main_~Y~0)) main_~yx~0) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} is VALID [2022-04-08 11:08:44,597 INFO L272 TraceCheckUtils]: 46: Hoare triple {6666#(and (= main_~xy~0 0) (= (* main_~Y~0 (div (* main_~Y~0 3) main_~Y~0)) main_~yx~0) (= main_~v~0 (+ (* main_~Y~0 8) (* (- 1) main_~X~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:44,597 INFO L290 TraceCheckUtils]: 47: Hoare triple {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6674#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:44,598 INFO L290 TraceCheckUtils]: 48: Hoare triple {6674#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6518#false} is VALID [2022-04-08 11:08:44,598 INFO L290 TraceCheckUtils]: 49: Hoare triple {6518#false} assume !false; {6518#false} is VALID [2022-04-08 11:08:44,610 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 11 proven. 22 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:08:44,610 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:08:47,704 INFO L290 TraceCheckUtils]: 49: Hoare triple {6518#false} assume !false; {6518#false} is VALID [2022-04-08 11:08:47,705 INFO L290 TraceCheckUtils]: 48: Hoare triple {6674#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6518#false} is VALID [2022-04-08 11:08:47,705 INFO L290 TraceCheckUtils]: 47: Hoare triple {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6674#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:08:47,706 INFO L272 TraceCheckUtils]: 46: Hoare triple {6690#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:08:47,707 INFO L290 TraceCheckUtils]: 45: Hoare triple {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6690#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:08:47,708 INFO L290 TraceCheckUtils]: 44: Hoare triple {6698#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:47,709 INFO L290 TraceCheckUtils]: 43: Hoare triple {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6698#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:08:47,709 INFO L290 TraceCheckUtils]: 42: Hoare triple {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:47,710 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} {6708#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {6694#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:08:47,710 INFO L290 TraceCheckUtils]: 40: Hoare triple {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:47,711 INFO L290 TraceCheckUtils]: 39: Hoare triple {6718#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {6644#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:08:47,711 INFO L290 TraceCheckUtils]: 38: Hoare triple {6517#true} ~cond := #in~cond; {6718#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:08:47,711 INFO L272 TraceCheckUtils]: 37: Hoare triple {6708#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 36: Hoare triple {6517#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6708#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 35: Hoare triple {6517#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 34: Hoare triple {6517#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 33: Hoare triple {6517#true} assume !!(~x~0 <= ~X~0); {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6517#true} {6517#true} #65#return; {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 31: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 30: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 29: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L272 TraceCheckUtils]: 28: Hoare triple {6517#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:47,712 INFO L290 TraceCheckUtils]: 27: Hoare triple {6517#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 26: Hoare triple {6517#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 25: Hoare triple {6517#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 24: Hoare triple {6517#true} assume !!(~x~0 <= ~X~0); {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {6517#true} {6517#true} #65#return; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 22: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 21: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 20: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L272 TraceCheckUtils]: 19: Hoare triple {6517#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 18: Hoare triple {6517#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 17: Hoare triple {6517#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6517#true} {6517#true} #63#return; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 15: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 14: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:47,713 INFO L290 TraceCheckUtils]: 13: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L272 TraceCheckUtils]: 12: Hoare triple {6517#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 11: Hoare triple {6517#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6517#true} {6517#true} #61#return; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 9: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 8: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 7: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L272 TraceCheckUtils]: 6: Hoare triple {6517#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 5: Hoare triple {6517#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L272 TraceCheckUtils]: 4: Hoare triple {6517#true} call #t~ret8 := main(); {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6517#true} {6517#true} #69#return; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 2: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L290 TraceCheckUtils]: 1: Hoare triple {6517#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(15, 2);call #Ultimate.allocInit(12, 3); {6517#true} is VALID [2022-04-08 11:08:47,714 INFO L272 TraceCheckUtils]: 0: Hoare triple {6517#true} call ULTIMATE.init(); {6517#true} is VALID [2022-04-08 11:08:47,715 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 24 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 11:08:47,715 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:08:47,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1026831063] [2022-04-08 11:08:47,715 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:08:47,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [926948856] [2022-04-08 11:08:47,715 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [926948856] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:08:47,715 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:08:47,715 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 10] total 19 [2022-04-08 11:08:47,715 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:08:47,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [886498571] [2022-04-08 11:08:47,716 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [886498571] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:08:47,718 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:08:47,719 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 11:08:47,719 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [755941038] [2022-04-08 11:08:47,719 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:08:47,719 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:08:47,720 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:08:47,720 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:47,763 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:47,763 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 11:08:47,763 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:47,764 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 11:08:47,764 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=49, Invalid=293, Unknown=0, NotChecked=0, Total=342 [2022-04-08 11:08:47,764 INFO L87 Difference]: Start difference. First operand 73 states and 80 transitions. Second operand has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:49,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:49,002 INFO L93 Difference]: Finished difference Result 88 states and 98 transitions. [2022-04-08 11:08:49,002 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-08 11:08:49,002 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:08:49,002 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:08:49,002 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:49,003 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 65 transitions. [2022-04-08 11:08:49,003 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:49,004 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 65 transitions. [2022-04-08 11:08:49,004 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 65 transitions. [2022-04-08 11:08:49,065 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:49,066 INFO L225 Difference]: With dead ends: 88 [2022-04-08 11:08:49,066 INFO L226 Difference]: Without dead ends: 84 [2022-04-08 11:08:49,066 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 80 SyntacticMatches, 2 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=77, Invalid=429, Unknown=0, NotChecked=0, Total=506 [2022-04-08 11:08:49,067 INFO L913 BasicCegarLoop]: 29 mSDtfsCounter, 18 mSDsluCounter, 153 mSDsCounter, 0 mSdLazyCounter, 352 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 19 SdHoareTripleChecker+Valid, 182 SdHoareTripleChecker+Invalid, 360 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 352 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-08 11:08:49,067 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [19 Valid, 182 Invalid, 360 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 352 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-08 11:08:49,067 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-04-08 11:08:49,188 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 75. [2022-04-08 11:08:49,188 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:08:49,188 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:49,189 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:49,189 INFO L87 Difference]: Start difference. First operand 84 states. Second operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:49,190 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:49,190 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-08 11:08:49,190 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-08 11:08:49,190 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:49,190 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:49,191 INFO L74 IsIncluded]: Start isIncluded. First operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 84 states. [2022-04-08 11:08:49,191 INFO L87 Difference]: Start difference. First operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 84 states. [2022-04-08 11:08:49,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:08:49,192 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-08 11:08:49,192 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-08 11:08:49,192 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:08:49,192 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:08:49,192 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:08:49,192 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:08:49,192 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 75 states, 54 states have (on average 1.1296296296296295) internal successors, (61), 55 states have internal predecessors, (61), 12 states have call successors, (12), 9 states have call predecessors, (12), 8 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-08 11:08:49,193 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 83 transitions. [2022-04-08 11:08:49,193 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 83 transitions. Word has length 50 [2022-04-08 11:08:49,194 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:08:49,194 INFO L478 AbstractCegarLoop]: Abstraction has 75 states and 83 transitions. [2022-04-08 11:08:49,194 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 12 states have (on average 2.5) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:08:49,194 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 75 states and 83 transitions. [2022-04-08 11:08:49,351 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:08:49,351 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 83 transitions. [2022-04-08 11:08:49,352 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:08:49,352 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:08:49,352 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:08:49,368 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Forceful destruction successful, exit code 0 [2022-04-08 11:08:49,552 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 12 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable11 [2022-04-08 11:08:49,555 INFO L403 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:08:49,555 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:08:49,555 INFO L85 PathProgramCache]: Analyzing trace with hash 1311969331, now seen corresponding path program 5 times [2022-04-08 11:08:49,555 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:08:49,556 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1249163262] [2022-04-08 11:08:49,556 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:08:49,556 INFO L85 PathProgramCache]: Analyzing trace with hash 1311969331, now seen corresponding path program 6 times [2022-04-08 11:08:49,556 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:08:49,556 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1010555807] [2022-04-08 11:08:49,556 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:08:49,557 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:08:49,568 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:08:49,568 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1340674574] [2022-04-08 11:08:49,568 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:08:49,568 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:08:49,568 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:08:49,569 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:08:49,570 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Waiting until timeout for monitored process [2022-04-08 11:08:49,615 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 11:08:49,616 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:08:49,617 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 45 conjunts are in the unsatisfiable core [2022-04-08 11:08:49,629 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:08:49,630 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:09:16,392 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:09:22,419 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:09:35,268 INFO L272 TraceCheckUtils]: 0: Hoare triple {7337#true} call ULTIMATE.init(); {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L290 TraceCheckUtils]: 1: Hoare triple {7337#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(15, 2);call #Ultimate.allocInit(12, 3); {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L290 TraceCheckUtils]: 2: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7337#true} {7337#true} #69#return; {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L272 TraceCheckUtils]: 4: Hoare triple {7337#true} call #t~ret8 := main(); {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L290 TraceCheckUtils]: 5: Hoare triple {7337#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {7337#true} is VALID [2022-04-08 11:09:35,268 INFO L272 TraceCheckUtils]: 6: Hoare triple {7337#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 7: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 8: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 9: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7337#true} {7337#true} #61#return; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 11: Hoare triple {7337#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L272 TraceCheckUtils]: 12: Hoare triple {7337#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 13: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 14: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L290 TraceCheckUtils]: 15: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:35,269 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7337#true} {7337#true} #63#return; {7337#true} is VALID [2022-04-08 11:09:35,270 INFO L290 TraceCheckUtils]: 17: Hoare triple {7337#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:35,270 INFO L290 TraceCheckUtils]: 18: Hoare triple {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:35,270 INFO L272 TraceCheckUtils]: 19: Hoare triple {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:35,270 INFO L290 TraceCheckUtils]: 20: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:35,270 INFO L290 TraceCheckUtils]: 21: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:35,270 INFO L290 TraceCheckUtils]: 22: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:35,271 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7337#true} {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} #65#return; {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:35,271 INFO L290 TraceCheckUtils]: 24: Hoare triple {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:35,272 INFO L290 TraceCheckUtils]: 25: Hoare triple {7393#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:09:35,272 INFO L290 TraceCheckUtils]: 26: Hoare triple {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,275 WARN L290 TraceCheckUtils]: 27: Hoare triple {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7425#(and (or (and (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0))) (= main_~yx~0 0)) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} is UNKNOWN [2022-04-08 11:09:37,275 INFO L272 TraceCheckUtils]: 28: Hoare triple {7425#(and (or (and (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0))) (= main_~yx~0 0)) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:37,276 INFO L290 TraceCheckUtils]: 29: Hoare triple {7337#true} ~cond := #in~cond; {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:09:37,276 INFO L290 TraceCheckUtils]: 30: Hoare triple {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:37,276 INFO L290 TraceCheckUtils]: 31: Hoare triple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:37,277 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} {7425#(and (or (and (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0))) (= main_~yx~0 0)) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} #65#return; {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,278 INFO L290 TraceCheckUtils]: 33: Hoare triple {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,278 INFO L290 TraceCheckUtils]: 34: Hoare triple {7418#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {7449#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,279 INFO L290 TraceCheckUtils]: 35: Hoare triple {7449#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7449#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,279 INFO L290 TraceCheckUtils]: 36: Hoare triple {7449#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7456#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:09:37,279 INFO L272 TraceCheckUtils]: 37: Hoare triple {7456#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:37,280 INFO L290 TraceCheckUtils]: 38: Hoare triple {7337#true} ~cond := #in~cond; {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:09:37,280 INFO L290 TraceCheckUtils]: 39: Hoare triple {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:37,280 INFO L290 TraceCheckUtils]: 40: Hoare triple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:37,281 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} {7456#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {7472#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,282 INFO L290 TraceCheckUtils]: 42: Hoare triple {7472#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {7472#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-08 11:09:37,283 INFO L290 TraceCheckUtils]: 43: Hoare triple {7472#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) main_~v~0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {7479#(and (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (= (+ (- 1) main_~y~0) 0) (= (+ (* main_~Y~0 main_~x~0 2) main_~X~0 (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 6))))} is VALID [2022-04-08 11:09:37,285 INFO L290 TraceCheckUtils]: 44: Hoare triple {7479#(and (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (= (+ (- 1) main_~y~0) 0) (= (+ (* main_~Y~0 main_~x~0 2) main_~X~0 (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 6))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7483#(and (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) (+ main_~X~0 (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2))))} is VALID [2022-04-08 11:09:37,291 INFO L290 TraceCheckUtils]: 45: Hoare triple {7483#(and (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) (+ main_~X~0 (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7487#(and (or (and (= (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) 0) (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= main_~Y~0 0)) (and (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= (* (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0) main_~yx~0) (not (= main_~Y~0 0)) (= (mod (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) (+ (* (- 1) main_~X~0) (* main_~Y~0 2 (+ (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) (- 1))) (* main_~Y~0 2))))) (= main_~X~0 main_~xy~0))} is VALID [2022-04-08 11:09:37,294 INFO L272 TraceCheckUtils]: 46: Hoare triple {7487#(and (or (and (= (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) 0) (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= main_~Y~0 0)) (and (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= (* (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0) main_~yx~0) (not (= main_~Y~0 0)) (= (mod (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 6)) (+ (* (- 1) main_~X~0) (* main_~Y~0 2 (+ (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) (- 1))) (* main_~Y~0 2))))) (= main_~X~0 main_~xy~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:09:37,294 INFO L290 TraceCheckUtils]: 47: Hoare triple {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7495#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:09:37,294 INFO L290 TraceCheckUtils]: 48: Hoare triple {7495#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7338#false} is VALID [2022-04-08 11:09:37,295 INFO L290 TraceCheckUtils]: 49: Hoare triple {7338#false} assume !false; {7338#false} is VALID [2022-04-08 11:09:37,295 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 10 proven. 23 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:09:37,295 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:09:43,894 INFO L290 TraceCheckUtils]: 49: Hoare triple {7338#false} assume !false; {7338#false} is VALID [2022-04-08 11:09:43,894 INFO L290 TraceCheckUtils]: 48: Hoare triple {7495#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7338#false} is VALID [2022-04-08 11:09:43,895 INFO L290 TraceCheckUtils]: 47: Hoare triple {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7495#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:09:43,895 INFO L272 TraceCheckUtils]: 46: Hoare triple {7511#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:09:43,896 INFO L290 TraceCheckUtils]: 45: Hoare triple {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7511#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:09:43,917 INFO L290 TraceCheckUtils]: 44: Hoare triple {7519#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:09:43,919 INFO L290 TraceCheckUtils]: 43: Hoare triple {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {7519#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:09:43,919 INFO L290 TraceCheckUtils]: 42: Hoare triple {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:09:43,920 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} {7529#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {7515#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:09:43,920 INFO L290 TraceCheckUtils]: 40: Hoare triple {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:43,921 INFO L290 TraceCheckUtils]: 39: Hoare triple {7539#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {7436#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:09:43,921 INFO L290 TraceCheckUtils]: 38: Hoare triple {7337#true} ~cond := #in~cond; {7539#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:09:43,921 INFO L272 TraceCheckUtils]: 37: Hoare triple {7529#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 36: Hoare triple {7337#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7529#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 35: Hoare triple {7337#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 34: Hoare triple {7337#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 33: Hoare triple {7337#true} assume !!(~x~0 <= ~X~0); {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7337#true} {7337#true} #65#return; {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 31: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 30: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:43,922 INFO L290 TraceCheckUtils]: 29: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L272 TraceCheckUtils]: 28: Hoare triple {7337#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 27: Hoare triple {7337#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 26: Hoare triple {7337#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 25: Hoare triple {7337#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 24: Hoare triple {7337#true} assume !!(~x~0 <= ~X~0); {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7337#true} {7337#true} #65#return; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 22: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 21: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 20: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L272 TraceCheckUtils]: 19: Hoare triple {7337#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 18: Hoare triple {7337#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L290 TraceCheckUtils]: 17: Hoare triple {7337#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {7337#true} is VALID [2022-04-08 11:09:43,923 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7337#true} {7337#true} #63#return; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 15: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 14: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 13: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L272 TraceCheckUtils]: 12: Hoare triple {7337#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 11: Hoare triple {7337#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7337#true} {7337#true} #61#return; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 9: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 8: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 7: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L272 TraceCheckUtils]: 6: Hoare triple {7337#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 5: Hoare triple {7337#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L272 TraceCheckUtils]: 4: Hoare triple {7337#true} call #t~ret8 := main(); {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7337#true} {7337#true} #69#return; {7337#true} is VALID [2022-04-08 11:09:43,924 INFO L290 TraceCheckUtils]: 2: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-08 11:09:43,925 INFO L290 TraceCheckUtils]: 1: Hoare triple {7337#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(15, 2);call #Ultimate.allocInit(12, 3); {7337#true} is VALID [2022-04-08 11:09:43,925 INFO L272 TraceCheckUtils]: 0: Hoare triple {7337#true} call ULTIMATE.init(); {7337#true} is VALID [2022-04-08 11:09:43,925 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 24 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 11:09:43,925 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:09:43,925 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1010555807] [2022-04-08 11:09:43,925 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:09:43,925 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1340674574] [2022-04-08 11:09:43,925 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1340674574] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:09:43,925 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:09:43,925 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 10] total 20 [2022-04-08 11:09:43,926 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:09:43,926 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1249163262] [2022-04-08 11:09:43,926 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1249163262] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:09:43,926 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:09:43,926 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-08 11:09:43,926 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [372890615] [2022-04-08 11:09:43,926 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:09:43,926 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:09:43,926 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:09:43,927 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:09:45,973 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 43 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:09:45,974 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-08 11:09:45,974 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:09:45,974 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-08 11:09:45,974 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=328, Unknown=0, NotChecked=0, Total=380 [2022-04-08 11:09:45,974 INFO L87 Difference]: Start difference. First operand 75 states and 83 transitions. Second operand has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:09:48,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:09:48,988 INFO L93 Difference]: Finished difference Result 88 states and 98 transitions. [2022-04-08 11:09:48,988 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 11:09:48,988 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:09:48,988 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:09:48,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:09:48,989 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-08 11:09:48,989 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:09:48,990 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-08 11:09:48,990 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 65 transitions. [2022-04-08 11:09:51,059 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 64 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:09:51,061 INFO L225 Difference]: With dead ends: 88 [2022-04-08 11:09:51,061 INFO L226 Difference]: Without dead ends: 86 [2022-04-08 11:09:51,062 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 78 SyntacticMatches, 3 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 79 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=80, Invalid=472, Unknown=0, NotChecked=0, Total=552 [2022-04-08 11:09:51,063 INFO L913 BasicCegarLoop]: 29 mSDtfsCounter, 19 mSDsluCounter, 174 mSDsCounter, 0 mSdLazyCounter, 386 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 203 SdHoareTripleChecker+Invalid, 391 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 386 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-04-08 11:09:51,063 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 203 Invalid, 391 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 386 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-04-08 11:09:51,064 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2022-04-08 11:09:51,173 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 82. [2022-04-08 11:09:51,174 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:09:51,174 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:09:51,174 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:09:51,174 INFO L87 Difference]: Start difference. First operand 86 states. Second operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:09:51,177 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:09:51,177 INFO L93 Difference]: Finished difference Result 86 states and 96 transitions. [2022-04-08 11:09:51,177 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 96 transitions. [2022-04-08 11:09:51,178 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:09:51,178 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:09:51,178 INFO L74 IsIncluded]: Start isIncluded. First operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) Second operand 86 states. [2022-04-08 11:09:51,178 INFO L87 Difference]: Start difference. First operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) Second operand 86 states. [2022-04-08 11:09:51,179 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:09:51,179 INFO L93 Difference]: Finished difference Result 86 states and 96 transitions. [2022-04-08 11:09:51,180 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 96 transitions. [2022-04-08 11:09:51,180 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:09:51,180 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:09:51,180 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:09:51,180 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:09:51,181 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 82 states, 59 states have (on average 1.11864406779661) internal successors, (66), 61 states have internal predecessors, (66), 13 states have call successors, (13), 10 states have call predecessors, (13), 9 states have return successors, (11), 10 states have call predecessors, (11), 11 states have call successors, (11) [2022-04-08 11:09:51,182 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 90 transitions. [2022-04-08 11:09:51,182 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 90 transitions. Word has length 50 [2022-04-08 11:09:51,182 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:09:51,182 INFO L478 AbstractCegarLoop]: Abstraction has 82 states and 90 transitions. [2022-04-08 11:09:51,182 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 12 states have (on average 2.5) internal successors, (30), 14 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:09:51,182 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 82 states and 90 transitions. [2022-04-08 11:09:51,361 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:09:51,362 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 90 transitions. [2022-04-08 11:09:51,362 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:09:51,362 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:09:51,362 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:09:51,380 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Forceful destruction successful, exit code 0 [2022-04-08 11:09:51,571 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 13 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable12 [2022-04-08 11:09:51,571 INFO L403 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:09:51,572 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:09:51,572 INFO L85 PathProgramCache]: Analyzing trace with hash -1484106385, now seen corresponding path program 7 times [2022-04-08 11:09:51,572 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:09:51,572 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [315127298] [2022-04-08 11:09:51,572 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:09:51,572 INFO L85 PathProgramCache]: Analyzing trace with hash -1484106385, now seen corresponding path program 8 times [2022-04-08 11:09:51,572 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:09:51,572 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [159768113] [2022-04-08 11:09:51,572 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:09:51,573 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:09:51,582 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:09:51,582 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [604622673] [2022-04-08 11:09:51,582 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:09:51,582 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:09:51,583 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:09:51,585 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:09:51,585 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Waiting until timeout for monitored process [2022-04-08 11:09:51,625 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:09:51,625 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:09:51,626 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 41 conjunts are in the unsatisfiable core [2022-04-08 11:09:51,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:09:51,636 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:10:07,200 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:10:15,675 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:10:26,258 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:10:33,378 INFO L272 TraceCheckUtils]: 0: Hoare triple {8176#true} call ULTIMATE.init(); {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 1: Hoare triple {8176#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(15, 2);call #Ultimate.allocInit(12, 3); {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 2: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8176#true} {8176#true} #69#return; {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L272 TraceCheckUtils]: 4: Hoare triple {8176#true} call #t~ret8 := main(); {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 5: Hoare triple {8176#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L272 TraceCheckUtils]: 6: Hoare triple {8176#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 7: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 8: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L290 TraceCheckUtils]: 9: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:33,379 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8176#true} {8176#true} #61#return; {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L290 TraceCheckUtils]: 11: Hoare triple {8176#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L272 TraceCheckUtils]: 12: Hoare triple {8176#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L290 TraceCheckUtils]: 13: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L290 TraceCheckUtils]: 14: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L290 TraceCheckUtils]: 15: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8176#true} {8176#true} #63#return; {8176#true} is VALID [2022-04-08 11:10:33,380 INFO L290 TraceCheckUtils]: 17: Hoare triple {8176#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,381 INFO L290 TraceCheckUtils]: 18: Hoare triple {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,381 INFO L272 TraceCheckUtils]: 19: Hoare triple {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:33,381 INFO L290 TraceCheckUtils]: 20: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:33,381 INFO L290 TraceCheckUtils]: 21: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:33,381 INFO L290 TraceCheckUtils]: 22: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:33,381 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8176#true} {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} #65#return; {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,382 INFO L290 TraceCheckUtils]: 24: Hoare triple {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,383 INFO L290 TraceCheckUtils]: 25: Hoare triple {8232#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {8257#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,383 INFO L290 TraceCheckUtils]: 26: Hoare triple {8257#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8257#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:10:33,383 INFO L290 TraceCheckUtils]: 27: Hoare triple {8257#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8264#(and (= main_~xy~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:10:33,383 INFO L272 TraceCheckUtils]: 28: Hoare triple {8264#(and (= main_~xy~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:33,384 INFO L290 TraceCheckUtils]: 29: Hoare triple {8176#true} ~cond := #in~cond; {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:10:33,384 INFO L290 TraceCheckUtils]: 30: Hoare triple {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:33,384 INFO L290 TraceCheckUtils]: 31: Hoare triple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:33,385 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} {8264#(and (= main_~xy~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} #65#return; {8282#(= (+ main_~X~0 main_~v~0) (* main_~Y~0 4))} is VALID [2022-04-08 11:10:33,385 INFO L290 TraceCheckUtils]: 33: Hoare triple {8282#(= (+ main_~X~0 main_~v~0) (* main_~Y~0 4))} assume !!(~x~0 <= ~X~0); {8282#(= (+ main_~X~0 main_~v~0) (* main_~Y~0 4))} is VALID [2022-04-08 11:10:33,386 INFO L290 TraceCheckUtils]: 34: Hoare triple {8282#(= (+ main_~X~0 main_~v~0) (* main_~Y~0 4))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {8289#(= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0)))} is VALID [2022-04-08 11:10:33,386 INFO L290 TraceCheckUtils]: 35: Hoare triple {8289#(= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8289#(= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0)))} is VALID [2022-04-08 11:10:33,387 INFO L290 TraceCheckUtils]: 36: Hoare triple {8289#(= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8296#(and (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:10:33,387 INFO L272 TraceCheckUtils]: 37: Hoare triple {8296#(and (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:33,387 INFO L290 TraceCheckUtils]: 38: Hoare triple {8176#true} ~cond := #in~cond; {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:10:33,387 INFO L290 TraceCheckUtils]: 39: Hoare triple {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:33,387 INFO L290 TraceCheckUtils]: 40: Hoare triple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:33,388 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} {8296#(and (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {8312#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:10:33,389 INFO L290 TraceCheckUtils]: 42: Hoare triple {8312#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))))} assume !!(~x~0 <= ~X~0); {8312#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:10:33,390 INFO L290 TraceCheckUtils]: 43: Hoare triple {8312#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (* main_~Y~0 4) (+ main_~v~0 (* main_~X~0 3) (* (- 2) main_~Y~0))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {8319#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* (- 2) main_~X~0) (* main_~Y~0 6))) (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))))} is VALID [2022-04-08 11:10:33,391 INFO L290 TraceCheckUtils]: 44: Hoare triple {8319#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* (- 2) main_~X~0) (* main_~Y~0 6))) (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8323#(and (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))) (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* (- 2) main_~X~0) (* main_~Y~0 6))))} is VALID [2022-04-08 11:10:35,394 WARN L290 TraceCheckUtils]: 45: Hoare triple {8323#(and (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))) (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) (* (- 2) main_~X~0) (* main_~Y~0 6))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8327#(and (or (and (or (and (= (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) 0) (= main_~yx~0 0)) (and (= (mod (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) main_~Y~0) 0) (= (* (div (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) main_~Y~0) main_~Y~0) main_~yx~0) (not (= main_~Y~0 0)))) (not (= main_~X~0 0)) (= (mod main_~xy~0 main_~X~0) 0)) (and (= main_~xy~0 0) (= main_~X~0 0) (or (and (= (* main_~Y~0 3) (+ (* (div main_~yx~0 main_~Y~0) main_~Y~0) main_~X~0)) (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0))) (and (= main_~yx~0 0) (= main_~Y~0 0))))) (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))))} is UNKNOWN [2022-04-08 11:10:35,397 INFO L272 TraceCheckUtils]: 46: Hoare triple {8327#(and (or (and (or (and (= (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) 0) (= main_~yx~0 0)) (and (= (mod (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) main_~Y~0) 0) (= (* (div (+ (* main_~Y~0 3) (* (div main_~xy~0 main_~X~0) main_~X~0) (* (- 1) main_~X~0)) main_~Y~0) main_~Y~0) main_~yx~0) (not (= main_~Y~0 0)))) (not (= main_~X~0 0)) (= (mod main_~xy~0 main_~X~0) 0)) (and (= main_~xy~0 0) (= main_~X~0 0) (or (and (= (* main_~Y~0 3) (+ (* (div main_~yx~0 main_~Y~0) main_~Y~0) main_~X~0)) (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0))) (and (= main_~yx~0 0) (= main_~Y~0 0))))) (= main_~v~0 (+ (* main_~Y~0 8) (* main_~X~0 (- 3)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:10:35,398 INFO L290 TraceCheckUtils]: 47: Hoare triple {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8335#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:10:35,398 INFO L290 TraceCheckUtils]: 48: Hoare triple {8335#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8177#false} is VALID [2022-04-08 11:10:35,398 INFO L290 TraceCheckUtils]: 49: Hoare triple {8177#false} assume !false; {8177#false} is VALID [2022-04-08 11:10:35,398 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 10 proven. 23 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:10:35,398 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:10:40,139 INFO L290 TraceCheckUtils]: 49: Hoare triple {8177#false} assume !false; {8177#false} is VALID [2022-04-08 11:10:40,139 INFO L290 TraceCheckUtils]: 48: Hoare triple {8335#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8177#false} is VALID [2022-04-08 11:10:40,140 INFO L290 TraceCheckUtils]: 47: Hoare triple {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8335#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:10:40,140 INFO L272 TraceCheckUtils]: 46: Hoare triple {8351#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:10:40,141 INFO L290 TraceCheckUtils]: 45: Hoare triple {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8351#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:10:40,143 INFO L290 TraceCheckUtils]: 44: Hoare triple {8359#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:10:40,144 INFO L290 TraceCheckUtils]: 43: Hoare triple {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {8359#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:10:40,144 INFO L290 TraceCheckUtils]: 42: Hoare triple {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:10:40,145 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} {8369#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {8355#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:10:40,145 INFO L290 TraceCheckUtils]: 40: Hoare triple {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:40,146 INFO L290 TraceCheckUtils]: 39: Hoare triple {8379#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {8275#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:10:40,146 INFO L290 TraceCheckUtils]: 38: Hoare triple {8176#true} ~cond := #in~cond; {8379#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:10:40,146 INFO L272 TraceCheckUtils]: 37: Hoare triple {8369#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 36: Hoare triple {8176#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8369#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 35: Hoare triple {8176#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 34: Hoare triple {8176#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 33: Hoare triple {8176#true} assume !!(~x~0 <= ~X~0); {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8176#true} {8176#true} #65#return; {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 31: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 30: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:40,147 INFO L290 TraceCheckUtils]: 29: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L272 TraceCheckUtils]: 28: Hoare triple {8176#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 27: Hoare triple {8176#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 26: Hoare triple {8176#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 25: Hoare triple {8176#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 24: Hoare triple {8176#true} assume !!(~x~0 <= ~X~0); {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8176#true} {8176#true} #65#return; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 22: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 21: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 20: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L272 TraceCheckUtils]: 19: Hoare triple {8176#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 18: Hoare triple {8176#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L290 TraceCheckUtils]: 17: Hoare triple {8176#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {8176#true} is VALID [2022-04-08 11:10:40,148 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8176#true} {8176#true} #63#return; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 15: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 14: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 13: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L272 TraceCheckUtils]: 12: Hoare triple {8176#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 11: Hoare triple {8176#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8176#true} {8176#true} #61#return; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 9: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 8: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 7: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L272 TraceCheckUtils]: 6: Hoare triple {8176#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L290 TraceCheckUtils]: 5: Hoare triple {8176#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L272 TraceCheckUtils]: 4: Hoare triple {8176#true} call #t~ret8 := main(); {8176#true} is VALID [2022-04-08 11:10:40,149 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8176#true} {8176#true} #69#return; {8176#true} is VALID [2022-04-08 11:10:40,150 INFO L290 TraceCheckUtils]: 2: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-08 11:10:40,150 INFO L290 TraceCheckUtils]: 1: Hoare triple {8176#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(15, 2);call #Ultimate.allocInit(12, 3); {8176#true} is VALID [2022-04-08 11:10:40,150 INFO L272 TraceCheckUtils]: 0: Hoare triple {8176#true} call ULTIMATE.init(); {8176#true} is VALID [2022-04-08 11:10:40,150 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 24 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 11:10:40,150 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:10:40,150 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [159768113] [2022-04-08 11:10:40,150 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:10:40,150 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [604622673] [2022-04-08 11:10:40,150 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [604622673] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:10:40,150 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:10:40,150 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 10] total 21 [2022-04-08 11:10:40,151 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:10:40,151 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [315127298] [2022-04-08 11:10:40,151 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [315127298] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:10:40,151 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:10:40,151 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-08 11:10:40,151 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1443309449] [2022-04-08 11:10:40,151 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:10:40,151 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:10:40,155 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:10:40,156 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:10:42,197 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 43 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:10:42,198 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-08 11:10:42,198 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:10:42,198 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-08 11:10:42,198 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=365, Unknown=0, NotChecked=0, Total=420 [2022-04-08 11:10:42,198 INFO L87 Difference]: Start difference. First operand 82 states and 90 transitions. Second operand has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:10:46,202 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:10:50,271 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.43s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:10:54,362 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:10:56,776 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:11:02,999 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:02,999 INFO L93 Difference]: Finished difference Result 100 states and 112 transitions. [2022-04-08 11:11:02,999 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 11:11:02,999 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:02,999 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:11:02,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:03,000 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-08 11:11:03,000 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:03,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-08 11:11:03,001 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 65 transitions. [2022-04-08 11:11:05,069 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 64 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:05,070 INFO L225 Difference]: With dead ends: 100 [2022-04-08 11:11:05,070 INFO L226 Difference]: Without dead ends: 98 [2022-04-08 11:11:05,071 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 104 GetRequests, 78 SyntacticMatches, 2 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 79 ImplicationChecksByTransitivity, 4.7s TimeCoverageRelationStatistics Valid=88, Invalid=561, Unknown=1, NotChecked=0, Total=650 [2022-04-08 11:11:05,071 INFO L913 BasicCegarLoop]: 26 mSDtfsCounter, 22 mSDsluCounter, 165 mSDsCounter, 0 mSdLazyCounter, 365 mSolverCounterSat, 8 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 10.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 191 SdHoareTripleChecker+Invalid, 376 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 365 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 10.7s IncrementalHoareTripleChecker+Time [2022-04-08 11:11:05,071 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 191 Invalid, 376 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 365 Invalid, 3 Unknown, 0 Unchecked, 10.7s Time] [2022-04-08 11:11:05,071 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 98 states. [2022-04-08 11:11:05,204 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 98 to 87. [2022-04-08 11:11:05,204 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:11:05,204 INFO L82 GeneralOperation]: Start isEquivalent. First operand 98 states. Second operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 11:11:05,205 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 11:11:05,205 INFO L87 Difference]: Start difference. First operand 98 states. Second operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 11:11:05,206 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:05,206 INFO L93 Difference]: Finished difference Result 98 states and 110 transitions. [2022-04-08 11:11:05,206 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 110 transitions. [2022-04-08 11:11:05,207 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:05,207 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:05,207 INFO L74 IsIncluded]: Start isIncluded. First operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) Second operand 98 states. [2022-04-08 11:11:05,207 INFO L87 Difference]: Start difference. First operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) Second operand 98 states. [2022-04-08 11:11:05,208 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:05,209 INFO L93 Difference]: Finished difference Result 98 states and 110 transitions. [2022-04-08 11:11:05,209 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 110 transitions. [2022-04-08 11:11:05,209 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:05,209 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:05,209 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:11:05,209 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:11:05,209 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 87 states, 63 states have (on average 1.126984126984127) internal successors, (71), 65 states have internal predecessors, (71), 14 states have call successors, (14), 10 states have call predecessors, (14), 9 states have return successors, (12), 11 states have call predecessors, (12), 12 states have call successors, (12) [2022-04-08 11:11:05,210 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 87 states to 87 states and 97 transitions. [2022-04-08 11:11:05,210 INFO L78 Accepts]: Start accepts. Automaton has 87 states and 97 transitions. Word has length 50 [2022-04-08 11:11:05,211 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:11:05,211 INFO L478 AbstractCegarLoop]: Abstraction has 87 states and 97 transitions. [2022-04-08 11:11:05,211 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 13 states have (on average 2.3076923076923075) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:05,211 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 87 states and 97 transitions. [2022-04-08 11:11:07,493 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 97 edges. 96 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:07,493 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 97 transitions. [2022-04-08 11:11:07,494 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:11:07,494 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:11:07,494 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:11:07,517 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Forceful destruction successful, exit code 0 [2022-04-08 11:11:07,694 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 14 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable13 [2022-04-08 11:11:07,695 INFO L403 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:11:07,695 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:11:07,695 INFO L85 PathProgramCache]: Analyzing trace with hash 290900977, now seen corresponding path program 9 times [2022-04-08 11:11:07,695 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:07,695 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1872389681] [2022-04-08 11:11:07,695 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:11:07,695 INFO L85 PathProgramCache]: Analyzing trace with hash 290900977, now seen corresponding path program 10 times [2022-04-08 11:11:07,695 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:11:07,696 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [872424653] [2022-04-08 11:11:07,696 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:11:07,696 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:11:07,710 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:11:07,710 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [928944348] [2022-04-08 11:11:07,710 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:11:07,710 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:11:07,710 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:11:07,711 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:11:07,712 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Waiting until timeout for monitored process [2022-04-08 11:11:07,746 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:11:07,746 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:11:07,747 INFO L263 TraceCheckSpWp]: Trace formula consists of 106 conjuncts, 5 conjunts are in the unsatisfiable core [2022-04-08 11:11:07,755 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:11:07,755 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:11:08,136 INFO L272 TraceCheckUtils]: 0: Hoare triple {9076#true} call ULTIMATE.init(); {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L290 TraceCheckUtils]: 1: Hoare triple {9076#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(15, 2);call #Ultimate.allocInit(12, 3); {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L290 TraceCheckUtils]: 2: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9076#true} {9076#true} #69#return; {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L272 TraceCheckUtils]: 4: Hoare triple {9076#true} call #t~ret8 := main(); {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L290 TraceCheckUtils]: 5: Hoare triple {9076#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L272 TraceCheckUtils]: 6: Hoare triple {9076#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L290 TraceCheckUtils]: 7: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,136 INFO L290 TraceCheckUtils]: 8: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L290 TraceCheckUtils]: 9: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9076#true} {9076#true} #61#return; {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L290 TraceCheckUtils]: 11: Hoare triple {9076#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L272 TraceCheckUtils]: 12: Hoare triple {9076#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L290 TraceCheckUtils]: 13: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L290 TraceCheckUtils]: 14: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L290 TraceCheckUtils]: 15: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,137 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9076#true} {9076#true} #63#return; {9076#true} is VALID [2022-04-08 11:11:08,138 INFO L290 TraceCheckUtils]: 17: Hoare triple {9076#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:08,138 INFO L290 TraceCheckUtils]: 18: Hoare triple {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:08,138 INFO L272 TraceCheckUtils]: 19: Hoare triple {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,138 INFO L290 TraceCheckUtils]: 20: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,138 INFO L290 TraceCheckUtils]: 21: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,138 INFO L290 TraceCheckUtils]: 22: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,139 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9076#true} {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} #65#return; {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:08,139 INFO L290 TraceCheckUtils]: 24: Hoare triple {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:08,140 INFO L290 TraceCheckUtils]: 25: Hoare triple {9132#(<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} is VALID [2022-04-08 11:11:08,141 INFO L290 TraceCheckUtils]: 26: Hoare triple {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} is VALID [2022-04-08 11:11:08,141 INFO L290 TraceCheckUtils]: 27: Hoare triple {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} is VALID [2022-04-08 11:11:08,141 INFO L272 TraceCheckUtils]: 28: Hoare triple {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,141 INFO L290 TraceCheckUtils]: 29: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,141 INFO L290 TraceCheckUtils]: 30: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,141 INFO L290 TraceCheckUtils]: 31: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,142 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9076#true} {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} #65#return; {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} is VALID [2022-04-08 11:11:08,142 INFO L290 TraceCheckUtils]: 33: Hoare triple {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} assume !!(~x~0 <= ~X~0); {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} is VALID [2022-04-08 11:11:08,143 INFO L290 TraceCheckUtils]: 34: Hoare triple {9157#(and (< (* main_~Y~0 2) main_~X~0) (< main_~v~0 (* main_~Y~0 2)))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} is VALID [2022-04-08 11:11:08,143 INFO L290 TraceCheckUtils]: 35: Hoare triple {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} is VALID [2022-04-08 11:11:08,144 INFO L290 TraceCheckUtils]: 36: Hoare triple {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} is VALID [2022-04-08 11:11:08,144 INFO L272 TraceCheckUtils]: 37: Hoare triple {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,144 INFO L290 TraceCheckUtils]: 38: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,144 INFO L290 TraceCheckUtils]: 39: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,144 INFO L290 TraceCheckUtils]: 40: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,145 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {9076#true} {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} #65#return; {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} is VALID [2022-04-08 11:11:08,145 INFO L290 TraceCheckUtils]: 42: Hoare triple {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} assume !!(~x~0 <= ~X~0); {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 43: Hoare triple {9185#(< 0 (div (+ (- 1) (* (- 1) main_~v~0)) 2))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 44: Hoare triple {9077#false} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 45: Hoare triple {9077#false} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L272 TraceCheckUtils]: 46: Hoare triple {9077#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 47: Hoare triple {9077#false} ~cond := #in~cond; {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 48: Hoare triple {9077#false} assume 0 == ~cond; {9077#false} is VALID [2022-04-08 11:11:08,146 INFO L290 TraceCheckUtils]: 49: Hoare triple {9077#false} assume !false; {9077#false} is VALID [2022-04-08 11:11:08,147 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 14 proven. 13 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-08 11:11:08,147 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:11:08,366 INFO L290 TraceCheckUtils]: 49: Hoare triple {9077#false} assume !false; {9077#false} is VALID [2022-04-08 11:11:08,366 INFO L290 TraceCheckUtils]: 48: Hoare triple {9077#false} assume 0 == ~cond; {9077#false} is VALID [2022-04-08 11:11:08,366 INFO L290 TraceCheckUtils]: 47: Hoare triple {9077#false} ~cond := #in~cond; {9077#false} is VALID [2022-04-08 11:11:08,366 INFO L272 TraceCheckUtils]: 46: Hoare triple {9077#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9077#false} is VALID [2022-04-08 11:11:08,366 INFO L290 TraceCheckUtils]: 45: Hoare triple {9077#false} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9077#false} is VALID [2022-04-08 11:11:08,366 INFO L290 TraceCheckUtils]: 44: Hoare triple {9077#false} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9077#false} is VALID [2022-04-08 11:11:08,367 INFO L290 TraceCheckUtils]: 43: Hoare triple {9249#(< main_~v~0 0)} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {9077#false} is VALID [2022-04-08 11:11:08,367 INFO L290 TraceCheckUtils]: 42: Hoare triple {9249#(< main_~v~0 0)} assume !!(~x~0 <= ~X~0); {9249#(< main_~v~0 0)} is VALID [2022-04-08 11:11:08,367 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {9076#true} {9249#(< main_~v~0 0)} #65#return; {9249#(< main_~v~0 0)} is VALID [2022-04-08 11:11:08,368 INFO L290 TraceCheckUtils]: 40: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,368 INFO L290 TraceCheckUtils]: 39: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,368 INFO L290 TraceCheckUtils]: 38: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,368 INFO L272 TraceCheckUtils]: 37: Hoare triple {9249#(< main_~v~0 0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,383 INFO L290 TraceCheckUtils]: 36: Hoare triple {9249#(< main_~v~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9249#(< main_~v~0 0)} is VALID [2022-04-08 11:11:08,383 INFO L290 TraceCheckUtils]: 35: Hoare triple {9249#(< main_~v~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9249#(< main_~v~0 0)} is VALID [2022-04-08 11:11:08,384 INFO L290 TraceCheckUtils]: 34: Hoare triple {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {9249#(< main_~v~0 0)} is VALID [2022-04-08 11:11:08,385 INFO L290 TraceCheckUtils]: 33: Hoare triple {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} assume !!(~x~0 <= ~X~0); {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} is VALID [2022-04-08 11:11:08,385 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9076#true} {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} #65#return; {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} is VALID [2022-04-08 11:11:08,385 INFO L290 TraceCheckUtils]: 31: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,385 INFO L290 TraceCheckUtils]: 30: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,385 INFO L290 TraceCheckUtils]: 29: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,385 INFO L272 TraceCheckUtils]: 28: Hoare triple {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,386 INFO L290 TraceCheckUtils]: 27: Hoare triple {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} is VALID [2022-04-08 11:11:08,386 INFO L290 TraceCheckUtils]: 26: Hoare triple {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} is VALID [2022-04-08 11:11:08,387 INFO L290 TraceCheckUtils]: 25: Hoare triple {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {9277#(< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))} is VALID [2022-04-08 11:11:08,387 INFO L290 TraceCheckUtils]: 24: Hoare triple {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} assume !!(~x~0 <= ~X~0); {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:11:08,388 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {9076#true} {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} #65#return; {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:11:08,388 INFO L290 TraceCheckUtils]: 22: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,388 INFO L290 TraceCheckUtils]: 21: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,388 INFO L290 TraceCheckUtils]: 20: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,388 INFO L272 TraceCheckUtils]: 19: Hoare triple {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,388 INFO L290 TraceCheckUtils]: 18: Hoare triple {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 17: Hoare triple {9076#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {9305#(or (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:11:08,389 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9076#true} {9076#true} #63#return; {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 15: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 14: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 13: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L272 TraceCheckUtils]: 12: Hoare triple {9076#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 11: Hoare triple {9076#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9076#true} {9076#true} #61#return; {9076#true} is VALID [2022-04-08 11:11:08,389 INFO L290 TraceCheckUtils]: 9: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L290 TraceCheckUtils]: 8: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L290 TraceCheckUtils]: 7: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L272 TraceCheckUtils]: 6: Hoare triple {9076#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L290 TraceCheckUtils]: 5: Hoare triple {9076#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L272 TraceCheckUtils]: 4: Hoare triple {9076#true} call #t~ret8 := main(); {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9076#true} {9076#true} #69#return; {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L290 TraceCheckUtils]: 2: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L290 TraceCheckUtils]: 1: Hoare triple {9076#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(15, 2);call #Ultimate.allocInit(12, 3); {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L272 TraceCheckUtils]: 0: Hoare triple {9076#true} call ULTIMATE.init(); {9076#true} is VALID [2022-04-08 11:11:08,390 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 14 proven. 13 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-08 11:11:08,390 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:11:08,391 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [872424653] [2022-04-08 11:11:08,391 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:11:08,391 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [928944348] [2022-04-08 11:11:08,391 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [928944348] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:11:08,391 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:11:08,391 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 8 [2022-04-08 11:11:08,391 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:11:08,391 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1872389681] [2022-04-08 11:11:08,391 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1872389681] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:11:08,391 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:11:08,391 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-08 11:11:08,391 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [982537443] [2022-04-08 11:11:08,391 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:11:08,392 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:08,392 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:11:08,392 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:08,422 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:08,422 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-08 11:11:08,422 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:08,422 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-08 11:11:08,422 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-08 11:11:08,422 INFO L87 Difference]: Start difference. First operand 87 states and 97 transitions. Second operand has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:09,028 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:09,028 INFO L93 Difference]: Finished difference Result 121 states and 141 transitions. [2022-04-08 11:11:09,028 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-08 11:11:09,028 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:09,028 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:11:09,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:09,029 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 71 transitions. [2022-04-08 11:11:09,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:09,030 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 71 transitions. [2022-04-08 11:11:09,030 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 71 transitions. [2022-04-08 11:11:09,117 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:09,118 INFO L225 Difference]: With dead ends: 121 [2022-04-08 11:11:09,118 INFO L226 Difference]: Without dead ends: 108 [2022-04-08 11:11:09,119 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 100 GetRequests, 93 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=24, Invalid=48, Unknown=0, NotChecked=0, Total=72 [2022-04-08 11:11:09,119 INFO L913 BasicCegarLoop]: 34 mSDtfsCounter, 4 mSDsluCounter, 57 mSDsCounter, 0 mSdLazyCounter, 80 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 4 SdHoareTripleChecker+Valid, 91 SdHoareTripleChecker+Invalid, 82 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 80 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:11:09,119 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [4 Valid, 91 Invalid, 82 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 80 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-08 11:11:09,120 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-08 11:11:09,309 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 104. [2022-04-08 11:11:09,310 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:11:09,310 INFO L82 GeneralOperation]: Start isEquivalent. First operand 108 states. Second operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-08 11:11:09,310 INFO L74 IsIncluded]: Start isIncluded. First operand 108 states. Second operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-08 11:11:09,310 INFO L87 Difference]: Start difference. First operand 108 states. Second operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-08 11:11:09,313 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:09,313 INFO L93 Difference]: Finished difference Result 108 states and 124 transitions. [2022-04-08 11:11:09,313 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 124 transitions. [2022-04-08 11:11:09,314 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:09,314 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:09,314 INFO L74 IsIncluded]: Start isIncluded. First operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) Second operand 108 states. [2022-04-08 11:11:09,315 INFO L87 Difference]: Start difference. First operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) Second operand 108 states. [2022-04-08 11:11:09,316 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:09,316 INFO L93 Difference]: Finished difference Result 108 states and 124 transitions. [2022-04-08 11:11:09,317 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 124 transitions. [2022-04-08 11:11:09,317 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:09,317 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:09,317 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:11:09,317 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:11:09,317 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 104 states, 76 states have (on average 1.131578947368421) internal successors, (86), 79 states have internal predecessors, (86), 18 states have call successors, (18), 10 states have call predecessors, (18), 9 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-08 11:11:09,320 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 104 states to 104 states and 120 transitions. [2022-04-08 11:11:09,320 INFO L78 Accepts]: Start accepts. Automaton has 104 states and 120 transitions. Word has length 50 [2022-04-08 11:11:09,321 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:11:09,321 INFO L478 AbstractCegarLoop]: Abstraction has 104 states and 120 transitions. [2022-04-08 11:11:09,321 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 5.4) internal successors, (27), 5 states have internal predecessors, (27), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:09,321 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 104 states and 120 transitions. [2022-04-08 11:11:13,654 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 120 edges. 118 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:13,654 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 120 transitions. [2022-04-08 11:11:13,655 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:11:13,655 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:11:13,655 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:11:13,674 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Ended with exit code 0 [2022-04-08 11:11:13,861 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable14,15 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:11:13,861 INFO L403 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:11:13,862 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:11:13,862 INFO L85 PathProgramCache]: Analyzing trace with hash 1452517941, now seen corresponding path program 11 times [2022-04-08 11:11:13,862 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:13,862 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [917627292] [2022-04-08 11:11:13,862 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:11:13,862 INFO L85 PathProgramCache]: Analyzing trace with hash 1452517941, now seen corresponding path program 12 times [2022-04-08 11:11:13,862 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:11:13,862 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [201891056] [2022-04-08 11:11:13,862 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:11:13,863 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:11:13,873 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:11:13,873 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [674673358] [2022-04-08 11:11:13,873 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:11:13,873 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:11:13,873 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:11:13,874 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:11:13,875 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Waiting until timeout for monitored process [2022-04-08 11:11:13,918 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 11:11:13,918 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:11:13,919 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 37 conjunts are in the unsatisfiable core [2022-04-08 11:11:13,932 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:11:13,933 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:11:14,671 INFO L272 TraceCheckUtils]: 0: Hoare triple {10051#true} call ULTIMATE.init(); {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L290 TraceCheckUtils]: 1: Hoare triple {10051#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(15, 2);call #Ultimate.allocInit(12, 3); {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L290 TraceCheckUtils]: 2: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10051#true} {10051#true} #69#return; {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L272 TraceCheckUtils]: 4: Hoare triple {10051#true} call #t~ret8 := main(); {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L290 TraceCheckUtils]: 5: Hoare triple {10051#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L272 TraceCheckUtils]: 6: Hoare triple {10051#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:14,671 INFO L290 TraceCheckUtils]: 7: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L290 TraceCheckUtils]: 8: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L290 TraceCheckUtils]: 9: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10051#true} {10051#true} #61#return; {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L290 TraceCheckUtils]: 11: Hoare triple {10051#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L272 TraceCheckUtils]: 12: Hoare triple {10051#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:14,672 INFO L290 TraceCheckUtils]: 13: Hoare triple {10051#true} ~cond := #in~cond; {10095#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 11:11:14,672 INFO L290 TraceCheckUtils]: 14: Hoare triple {10095#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {10099#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:11:14,673 INFO L290 TraceCheckUtils]: 15: Hoare triple {10099#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {10099#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:11:14,673 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {10099#(not (= |assume_abort_if_not_#in~cond| 0))} {10051#true} #63#return; {10106#(and (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,674 INFO L290 TraceCheckUtils]: 17: Hoare triple {10106#(and (<= 0 main_~Y~0) (<= main_~Y~0 20))} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:11:14,674 INFO L290 TraceCheckUtils]: 18: Hoare triple {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:11:14,674 INFO L272 TraceCheckUtils]: 19: Hoare triple {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:14,674 INFO L290 TraceCheckUtils]: 20: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:14,674 INFO L290 TraceCheckUtils]: 21: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:14,674 INFO L290 TraceCheckUtils]: 22: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:14,675 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {10051#true} {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} #65#return; {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:11:14,675 INFO L290 TraceCheckUtils]: 24: Hoare triple {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} is VALID [2022-04-08 11:11:14,676 INFO L290 TraceCheckUtils]: 25: Hoare triple {10110#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {10135#(and (= main_~x~0 0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,677 INFO L290 TraceCheckUtils]: 26: Hoare triple {10135#(and (= main_~x~0 0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,677 INFO L290 TraceCheckUtils]: 27: Hoare triple {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,677 INFO L272 TraceCheckUtils]: 28: Hoare triple {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:14,677 INFO L290 TraceCheckUtils]: 29: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:14,677 INFO L290 TraceCheckUtils]: 30: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:14,677 INFO L290 TraceCheckUtils]: 31: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:14,678 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {10051#true} {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} #65#return; {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,678 INFO L290 TraceCheckUtils]: 33: Hoare triple {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !!(~x~0 <= ~X~0); {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,679 INFO L290 TraceCheckUtils]: 34: Hoare triple {10139#(and (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {10164#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,679 INFO L290 TraceCheckUtils]: 35: Hoare triple {10164#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (= main_~x~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,680 INFO L290 TraceCheckUtils]: 36: Hoare triple {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,680 INFO L272 TraceCheckUtils]: 37: Hoare triple {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:14,680 INFO L290 TraceCheckUtils]: 38: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:14,680 INFO L290 TraceCheckUtils]: 39: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:14,680 INFO L290 TraceCheckUtils]: 40: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:14,681 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {10051#true} {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} #65#return; {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,681 INFO L290 TraceCheckUtils]: 42: Hoare triple {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} assume !!(~x~0 <= ~X~0); {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} is VALID [2022-04-08 11:11:14,682 INFO L290 TraceCheckUtils]: 43: Hoare triple {10168#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1) (<= 0 main_~Y~0) (<= main_~Y~0 20))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {10193#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 1) main_~y~0) 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,682 INFO L290 TraceCheckUtils]: 44: Hoare triple {10193#(and (= (+ (- 1) main_~x~0) 1) (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 1) main_~y~0) 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10197#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~x~0 3) (= (+ (- 1) main_~y~0) 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,683 INFO L290 TraceCheckUtils]: 45: Hoare triple {10197#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~x~0 3) (= (+ (- 1) main_~y~0) 1) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10201#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~xy~0 (* main_~X~0 2)) (= (* main_~Y~0 3) main_~yx~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:14,684 INFO L272 TraceCheckUtils]: 46: Hoare triple {10201#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~xy~0 (* main_~X~0 2)) (= (* main_~Y~0 3) main_~yx~0) (<= 0 main_~Y~0) (<= main_~Y~0 20) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:11:14,684 INFO L290 TraceCheckUtils]: 47: Hoare triple {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10209#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:14,685 INFO L290 TraceCheckUtils]: 48: Hoare triple {10209#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10052#false} is VALID [2022-04-08 11:11:14,685 INFO L290 TraceCheckUtils]: 49: Hoare triple {10052#false} assume !false; {10052#false} is VALID [2022-04-08 11:11:14,685 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 9 proven. 21 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-08 11:11:14,685 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:11:15,225 INFO L290 TraceCheckUtils]: 49: Hoare triple {10052#false} assume !false; {10052#false} is VALID [2022-04-08 11:11:15,225 INFO L290 TraceCheckUtils]: 48: Hoare triple {10209#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10052#false} is VALID [2022-04-08 11:11:15,225 INFO L290 TraceCheckUtils]: 47: Hoare triple {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10209#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:15,226 INFO L272 TraceCheckUtils]: 46: Hoare triple {10225#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:11:15,227 INFO L290 TraceCheckUtils]: 45: Hoare triple {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10225#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:11:15,229 INFO L290 TraceCheckUtils]: 44: Hoare triple {10233#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:15,230 INFO L290 TraceCheckUtils]: 43: Hoare triple {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {10233#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:11:15,231 INFO L290 TraceCheckUtils]: 42: Hoare triple {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:15,231 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {10051#true} {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} #65#return; {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:15,231 INFO L290 TraceCheckUtils]: 40: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,231 INFO L290 TraceCheckUtils]: 39: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:15,231 INFO L290 TraceCheckUtils]: 38: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:15,232 INFO L272 TraceCheckUtils]: 37: Hoare triple {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:15,232 INFO L290 TraceCheckUtils]: 36: Hoare triple {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:15,233 INFO L290 TraceCheckUtils]: 35: Hoare triple {10233#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10229#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:15,234 INFO L290 TraceCheckUtils]: 34: Hoare triple {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {10233#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:11:15,234 INFO L290 TraceCheckUtils]: 33: Hoare triple {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !!(~x~0 <= ~X~0); {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:15,235 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {10051#true} {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} #65#return; {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:15,235 INFO L290 TraceCheckUtils]: 31: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,235 INFO L290 TraceCheckUtils]: 30: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:15,235 INFO L290 TraceCheckUtils]: 29: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:15,235 INFO L272 TraceCheckUtils]: 28: Hoare triple {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:15,236 INFO L290 TraceCheckUtils]: 27: Hoare triple {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:15,237 INFO L290 TraceCheckUtils]: 26: Hoare triple {10289#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {10264#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:15,239 INFO L290 TraceCheckUtils]: 25: Hoare triple {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {10289#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))))} is VALID [2022-04-08 11:11:15,239 INFO L290 TraceCheckUtils]: 24: Hoare triple {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} assume !!(~x~0 <= ~X~0); {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} is VALID [2022-04-08 11:11:15,240 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {10051#true} {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} #65#return; {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} is VALID [2022-04-08 11:11:15,240 INFO L290 TraceCheckUtils]: 22: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,240 INFO L290 TraceCheckUtils]: 21: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:15,240 INFO L290 TraceCheckUtils]: 20: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:15,240 INFO L272 TraceCheckUtils]: 19: Hoare triple {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:15,241 INFO L290 TraceCheckUtils]: 18: Hoare triple {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} is VALID [2022-04-08 11:11:15,241 INFO L290 TraceCheckUtils]: 17: Hoare triple {10051#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {10293#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 4) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) (* main_~Y~0 2))) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))))} is VALID [2022-04-08 11:11:15,241 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {10051#true} {10051#true} #63#return; {10051#true} is VALID [2022-04-08 11:11:15,241 INFO L290 TraceCheckUtils]: 15: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,241 INFO L290 TraceCheckUtils]: 14: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:15,241 INFO L290 TraceCheckUtils]: 13: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L272 TraceCheckUtils]: 12: Hoare triple {10051#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 11: Hoare triple {10051#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10051#true} {10051#true} #61#return; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 9: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 8: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 7: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L272 TraceCheckUtils]: 6: Hoare triple {10051#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 5: Hoare triple {10051#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L272 TraceCheckUtils]: 4: Hoare triple {10051#true} call #t~ret8 := main(); {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10051#true} {10051#true} #69#return; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 2: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L290 TraceCheckUtils]: 1: Hoare triple {10051#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(15, 2);call #Ultimate.allocInit(12, 3); {10051#true} is VALID [2022-04-08 11:11:15,242 INFO L272 TraceCheckUtils]: 0: Hoare triple {10051#true} call ULTIMATE.init(); {10051#true} is VALID [2022-04-08 11:11:15,243 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 18 proven. 7 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-04-08 11:11:15,243 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:11:15,243 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [201891056] [2022-04-08 11:11:15,243 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:11:15,243 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [674673358] [2022-04-08 11:11:15,243 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [674673358] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:11:15,243 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:11:15,243 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 10] total 21 [2022-04-08 11:11:15,243 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:11:15,243 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [917627292] [2022-04-08 11:11:15,244 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [917627292] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:11:15,244 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:11:15,244 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-08 11:11:15,244 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1945912540] [2022-04-08 11:11:15,244 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:11:15,244 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:15,244 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:11:15,244 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:15,280 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:15,281 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-08 11:11:15,281 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:15,281 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-08 11:11:15,281 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=351, Unknown=0, NotChecked=0, Total=420 [2022-04-08 11:11:15,282 INFO L87 Difference]: Start difference. First operand 104 states and 120 transitions. Second operand has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:16,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:16,942 INFO L93 Difference]: Finished difference Result 117 states and 135 transitions. [2022-04-08 11:11:16,942 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 11:11:16,942 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:16,943 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:11:16,943 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:16,943 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 64 transitions. [2022-04-08 11:11:16,944 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:16,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 64 transitions. [2022-04-08 11:11:16,944 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 64 transitions. [2022-04-08 11:11:16,999 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:17,000 INFO L225 Difference]: With dead ends: 117 [2022-04-08 11:11:17,000 INFO L226 Difference]: Without dead ends: 115 [2022-04-08 11:11:17,001 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 102 GetRequests, 78 SyntacticMatches, 2 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 112 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=86, Invalid=466, Unknown=0, NotChecked=0, Total=552 [2022-04-08 11:11:17,001 INFO L913 BasicCegarLoop]: 29 mSDtfsCounter, 22 mSDsluCounter, 119 mSDsCounter, 0 mSdLazyCounter, 424 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 148 SdHoareTripleChecker+Invalid, 432 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 424 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-04-08 11:11:17,001 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 148 Invalid, 432 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 424 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-04-08 11:11:17,001 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2022-04-08 11:11:17,223 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 111. [2022-04-08 11:11:17,224 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:11:17,224 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) [2022-04-08 11:11:17,224 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) [2022-04-08 11:11:17,224 INFO L87 Difference]: Start difference. First operand 115 states. Second operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) [2022-04-08 11:11:17,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:17,226 INFO L93 Difference]: Finished difference Result 115 states and 133 transitions. [2022-04-08 11:11:17,226 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 133 transitions. [2022-04-08 11:11:17,227 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:17,227 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:17,239 INFO L74 IsIncluded]: Start isIncluded. First operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) Second operand 115 states. [2022-04-08 11:11:17,239 INFO L87 Difference]: Start difference. First operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) Second operand 115 states. [2022-04-08 11:11:17,242 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:17,242 INFO L93 Difference]: Finished difference Result 115 states and 133 transitions. [2022-04-08 11:11:17,242 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 133 transitions. [2022-04-08 11:11:17,242 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:17,242 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:17,243 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:11:17,243 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:11:17,243 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 111 states, 81 states have (on average 1.123456790123457) internal successors, (91), 85 states have internal predecessors, (91), 19 states have call successors, (19), 11 states have call predecessors, (19), 10 states have return successors, (17), 14 states have call predecessors, (17), 17 states have call successors, (17) [2022-04-08 11:11:17,244 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 111 states to 111 states and 127 transitions. [2022-04-08 11:11:17,244 INFO L78 Accepts]: Start accepts. Automaton has 111 states and 127 transitions. Word has length 50 [2022-04-08 11:11:17,244 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:11:17,245 INFO L478 AbstractCegarLoop]: Abstraction has 111 states and 127 transitions. [2022-04-08 11:11:17,245 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 14 states have (on average 2.142857142857143) internal successors, (30), 13 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:17,245 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 111 states and 127 transitions. [2022-04-08 11:11:21,545 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 127 edges. 125 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:21,546 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 127 transitions. [2022-04-08 11:11:21,546 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:11:21,546 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:11:21,546 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:11:21,563 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Forceful destruction successful, exit code 0 [2022-04-08 11:11:21,759 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 16 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable15 [2022-04-08 11:11:21,759 INFO L403 AbstractCegarLoop]: === Iteration 17 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:11:21,760 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:11:21,760 INFO L85 PathProgramCache]: Analyzing trace with hash -1343557775, now seen corresponding path program 13 times [2022-04-08 11:11:21,760 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:21,760 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1088159761] [2022-04-08 11:11:21,760 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:11:21,760 INFO L85 PathProgramCache]: Analyzing trace with hash -1343557775, now seen corresponding path program 14 times [2022-04-08 11:11:21,760 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:11:21,760 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1286807437] [2022-04-08 11:11:21,760 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:11:21,761 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:11:21,776 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:11:21,777 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [220955438] [2022-04-08 11:11:21,777 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:11:21,777 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:11:21,777 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:11:21,778 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:11:21,798 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (17)] Waiting until timeout for monitored process [2022-04-08 11:11:21,827 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:11:21,827 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:11:21,828 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 43 conjunts are in the unsatisfiable core [2022-04-08 11:11:21,839 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:11:21,840 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:11:36,304 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:11:43,822 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:11:49,539 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:11:49,948 INFO L272 TraceCheckUtils]: 0: Hoare triple {11063#true} call ULTIMATE.init(); {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L290 TraceCheckUtils]: 1: Hoare triple {11063#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(15, 2);call #Ultimate.allocInit(12, 3); {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L290 TraceCheckUtils]: 2: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11063#true} {11063#true} #69#return; {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L272 TraceCheckUtils]: 4: Hoare triple {11063#true} call #t~ret8 := main(); {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L290 TraceCheckUtils]: 5: Hoare triple {11063#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L272 TraceCheckUtils]: 6: Hoare triple {11063#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L290 TraceCheckUtils]: 7: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:49,948 INFO L290 TraceCheckUtils]: 8: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 9: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11063#true} {11063#true} #61#return; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 11: Hoare triple {11063#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L272 TraceCheckUtils]: 12: Hoare triple {11063#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 13: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 14: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 15: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11063#true} {11063#true} #63#return; {11063#true} is VALID [2022-04-08 11:11:49,949 INFO L290 TraceCheckUtils]: 17: Hoare triple {11063#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:11:49,950 INFO L290 TraceCheckUtils]: 18: Hoare triple {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:11:49,950 INFO L272 TraceCheckUtils]: 19: Hoare triple {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:49,950 INFO L290 TraceCheckUtils]: 20: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:49,950 INFO L290 TraceCheckUtils]: 21: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:49,950 INFO L290 TraceCheckUtils]: 22: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:49,951 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11063#true} {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} #65#return; {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:11:49,951 INFO L290 TraceCheckUtils]: 24: Hoare triple {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !!(~x~0 <= ~X~0); {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-08 11:11:49,952 INFO L290 TraceCheckUtils]: 25: Hoare triple {11119#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {11144#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:49,952 INFO L290 TraceCheckUtils]: 26: Hoare triple {11144#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:49,953 INFO L290 TraceCheckUtils]: 27: Hoare triple {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:49,953 INFO L272 TraceCheckUtils]: 28: Hoare triple {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:49,953 INFO L290 TraceCheckUtils]: 29: Hoare triple {11063#true} ~cond := #in~cond; {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:49,954 INFO L290 TraceCheckUtils]: 30: Hoare triple {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:49,954 INFO L290 TraceCheckUtils]: 31: Hoare triple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:49,954 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} #65#return; {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:49,955 INFO L290 TraceCheckUtils]: 33: Hoare triple {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !!(~x~0 <= ~X~0); {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:11:49,956 INFO L290 TraceCheckUtils]: 34: Hoare triple {11148#(and (= (+ (- 1) main_~x~0) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {11175#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} is VALID [2022-04-08 11:11:49,956 INFO L290 TraceCheckUtils]: 35: Hoare triple {11175#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11179#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} is VALID [2022-04-08 11:11:49,956 INFO L290 TraceCheckUtils]: 36: Hoare triple {11179#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11183#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:11:49,957 INFO L272 TraceCheckUtils]: 37: Hoare triple {11183#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:49,957 INFO L290 TraceCheckUtils]: 38: Hoare triple {11063#true} ~cond := #in~cond; {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:49,957 INFO L290 TraceCheckUtils]: 39: Hoare triple {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:49,957 INFO L290 TraceCheckUtils]: 40: Hoare triple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:49,959 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} {11183#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {11199#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} is VALID [2022-04-08 11:11:49,959 INFO L290 TraceCheckUtils]: 42: Hoare triple {11199#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} assume !!(~x~0 <= ~X~0); {11199#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} is VALID [2022-04-08 11:11:49,960 INFO L290 TraceCheckUtils]: 43: Hoare triple {11199#(and (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {11206#(and (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (< (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)))} is VALID [2022-04-08 11:11:49,962 INFO L290 TraceCheckUtils]: 44: Hoare triple {11206#(and (= (+ (- 2) main_~x~0) 0) (= (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (< (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11210#(and (= (+ main_~x~0 (- 3)) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (< (* 2 (* main_~Y~0 main_~x~0)) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)))} is VALID [2022-04-08 11:11:49,964 INFO L290 TraceCheckUtils]: 45: Hoare triple {11210#(and (= (+ main_~x~0 (- 3)) 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (not (< (* main_~Y~0 4) (* main_~X~0 3))) (< (* 2 (* main_~Y~0 main_~x~0)) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11214#(and (= (* main_~Y~0 3) main_~yx~0) (= (* main_~Y~0 8) (+ (* 2 (* (div (* main_~X~0 2) main_~X~0) main_~X~0)) main_~X~0 main_~v~0)) (= (* (div (* main_~X~0 2) main_~X~0) main_~X~0) main_~xy~0) (< (* main_~Y~0 6) (+ (* 2 (* (div (* main_~X~0 2) main_~X~0) main_~X~0)) main_~X~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} is VALID [2022-04-08 11:11:49,965 INFO L272 TraceCheckUtils]: 46: Hoare triple {11214#(and (= (* main_~Y~0 3) main_~yx~0) (= (* main_~Y~0 8) (+ (* 2 (* (div (* main_~X~0 2) main_~X~0) main_~X~0)) main_~X~0 main_~v~0)) (= (* (div (* main_~X~0 2) main_~X~0) main_~X~0) main_~xy~0) (< (* main_~Y~0 6) (+ (* 2 (* (div (* main_~X~0 2) main_~X~0) main_~X~0)) main_~X~0)) (not (< (* main_~Y~0 4) (* main_~X~0 3))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:11:49,965 INFO L290 TraceCheckUtils]: 47: Hoare triple {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {11222#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:49,966 INFO L290 TraceCheckUtils]: 48: Hoare triple {11222#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11064#false} is VALID [2022-04-08 11:11:49,966 INFO L290 TraceCheckUtils]: 49: Hoare triple {11064#false} assume !false; {11064#false} is VALID [2022-04-08 11:11:49,966 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 10 proven. 23 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:11:49,966 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:11:51,835 INFO L290 TraceCheckUtils]: 49: Hoare triple {11064#false} assume !false; {11064#false} is VALID [2022-04-08 11:11:51,835 INFO L290 TraceCheckUtils]: 48: Hoare triple {11222#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11064#false} is VALID [2022-04-08 11:11:51,836 INFO L290 TraceCheckUtils]: 47: Hoare triple {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {11222#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:11:51,836 INFO L272 TraceCheckUtils]: 46: Hoare triple {11238#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:11:51,837 INFO L290 TraceCheckUtils]: 45: Hoare triple {11242#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11238#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:11:51,839 INFO L290 TraceCheckUtils]: 44: Hoare triple {11246#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11242#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:11:51,840 INFO L290 TraceCheckUtils]: 43: Hoare triple {11250#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {11246#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:11:51,840 INFO L290 TraceCheckUtils]: 42: Hoare triple {11250#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !!(~x~0 <= ~X~0); {11250#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:51,841 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} {11257#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} #65#return; {11250#(or (not (< main_~v~0 0)) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:51,841 INFO L290 TraceCheckUtils]: 40: Hoare triple {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:51,842 INFO L290 TraceCheckUtils]: 39: Hoare triple {11267#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {11162#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:11:51,842 INFO L290 TraceCheckUtils]: 38: Hoare triple {11063#true} ~cond := #in~cond; {11267#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:11:51,842 INFO L272 TraceCheckUtils]: 37: Hoare triple {11257#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 36: Hoare triple {11063#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11257#(or (not (< main_~v~0 0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 35: Hoare triple {11063#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 34: Hoare triple {11063#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 33: Hoare triple {11063#true} assume !!(~x~0 <= ~X~0); {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11063#true} {11063#true} #65#return; {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 31: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 30: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 29: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L272 TraceCheckUtils]: 28: Hoare triple {11063#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:51,843 INFO L290 TraceCheckUtils]: 27: Hoare triple {11063#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 26: Hoare triple {11063#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 25: Hoare triple {11063#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 24: Hoare triple {11063#true} assume !!(~x~0 <= ~X~0); {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11063#true} {11063#true} #65#return; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 22: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 21: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 20: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L272 TraceCheckUtils]: 19: Hoare triple {11063#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 18: Hoare triple {11063#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 17: Hoare triple {11063#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11063#true} {11063#true} #63#return; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 15: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 14: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L290 TraceCheckUtils]: 13: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:51,844 INFO L272 TraceCheckUtils]: 12: Hoare triple {11063#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 11: Hoare triple {11063#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11063#true} {11063#true} #61#return; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 9: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 8: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 7: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L272 TraceCheckUtils]: 6: Hoare triple {11063#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 5: Hoare triple {11063#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L272 TraceCheckUtils]: 4: Hoare triple {11063#true} call #t~ret8 := main(); {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11063#true} {11063#true} #69#return; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 2: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L290 TraceCheckUtils]: 1: Hoare triple {11063#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(15, 2);call #Ultimate.allocInit(12, 3); {11063#true} is VALID [2022-04-08 11:11:51,845 INFO L272 TraceCheckUtils]: 0: Hoare triple {11063#true} call ULTIMATE.init(); {11063#true} is VALID [2022-04-08 11:11:51,846 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 24 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 11:11:51,846 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:11:51,846 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1286807437] [2022-04-08 11:11:51,846 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:11:51,846 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [220955438] [2022-04-08 11:11:51,846 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [220955438] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:11:51,846 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:11:51,846 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 11] total 22 [2022-04-08 11:11:51,846 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:11:51,846 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1088159761] [2022-04-08 11:11:51,846 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1088159761] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:11:51,846 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:11:51,846 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-08 11:11:51,847 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [78819201] [2022-04-08 11:11:51,847 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:11:51,847 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:51,847 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:11:51,847 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:51,900 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:51,900 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-08 11:11:51,900 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:51,901 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-08 11:11:51,901 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=399, Unknown=0, NotChecked=0, Total=462 [2022-04-08 11:11:51,901 INFO L87 Difference]: Start difference. First operand 111 states and 127 transitions. Second operand has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:54,933 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:54,934 INFO L93 Difference]: Finished difference Result 134 states and 156 transitions. [2022-04-08 11:11:54,934 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-08 11:11:54,934 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:11:54,934 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:11:54,934 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:54,935 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2022-04-08 11:11:54,935 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:54,936 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2022-04-08 11:11:54,936 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 77 transitions. [2022-04-08 11:11:55,017 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:55,019 INFO L225 Difference]: With dead ends: 134 [2022-04-08 11:11:55,019 INFO L226 Difference]: Without dead ends: 121 [2022-04-08 11:11:55,020 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 77 SyntacticMatches, 2 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 54 ImplicationChecksByTransitivity, 1.2s TimeCoverageRelationStatistics Valid=93, Invalid=557, Unknown=0, NotChecked=0, Total=650 [2022-04-08 11:11:55,020 INFO L913 BasicCegarLoop]: 27 mSDtfsCounter, 15 mSDsluCounter, 200 mSDsCounter, 0 mSdLazyCounter, 490 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 16 SdHoareTripleChecker+Valid, 227 SdHoareTripleChecker+Invalid, 495 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 490 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:11:55,020 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [16 Valid, 227 Invalid, 495 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 490 Invalid, 0 Unknown, 0 Unchecked, 1.1s Time] [2022-04-08 11:11:55,021 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 121 states. [2022-04-08 11:11:55,290 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 121 to 121. [2022-04-08 11:11:55,291 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:11:55,291 INFO L82 GeneralOperation]: Start isEquivalent. First operand 121 states. Second operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:11:55,291 INFO L74 IsIncluded]: Start isIncluded. First operand 121 states. Second operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:11:55,291 INFO L87 Difference]: Start difference. First operand 121 states. Second operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:11:55,293 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:55,293 INFO L93 Difference]: Finished difference Result 121 states and 138 transitions. [2022-04-08 11:11:55,293 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-08 11:11:55,294 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:55,294 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:55,294 INFO L74 IsIncluded]: Start isIncluded. First operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 121 states. [2022-04-08 11:11:55,294 INFO L87 Difference]: Start difference. First operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 121 states. [2022-04-08 11:11:55,296 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:11:55,296 INFO L93 Difference]: Finished difference Result 121 states and 138 transitions. [2022-04-08 11:11:55,296 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-08 11:11:55,296 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:11:55,296 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:11:55,296 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:11:55,296 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:11:55,296 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 121 states, 89 states have (on average 1.1235955056179776) internal successors, (100), 93 states have internal predecessors, (100), 20 states have call successors, (20), 12 states have call predecessors, (20), 11 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:11:55,298 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 121 states to 121 states and 138 transitions. [2022-04-08 11:11:55,298 INFO L78 Accepts]: Start accepts. Automaton has 121 states and 138 transitions. Word has length 50 [2022-04-08 11:11:55,298 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:11:55,298 INFO L478 AbstractCegarLoop]: Abstraction has 121 states and 138 transitions. [2022-04-08 11:11:55,298 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 14 states have (on average 2.142857142857143) internal successors, (30), 15 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:11:55,299 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 121 states and 138 transitions. [2022-04-08 11:11:59,629 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 138 edges. 136 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:11:59,629 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-08 11:11:59,629 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-08 11:11:59,629 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:11:59,629 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:11:59,650 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (17)] Forceful destruction successful, exit code 0 [2022-04-08 11:11:59,830 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 17 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable16 [2022-04-08 11:11:59,830 INFO L403 AbstractCegarLoop]: === Iteration 18 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:11:59,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:11:59,831 INFO L85 PathProgramCache]: Analyzing trace with hash 431449587, now seen corresponding path program 5 times [2022-04-08 11:11:59,831 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:11:59,831 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1968230680] [2022-04-08 11:11:59,831 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:11:59,831 INFO L85 PathProgramCache]: Analyzing trace with hash 431449587, now seen corresponding path program 6 times [2022-04-08 11:11:59,831 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:11:59,831 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [720661316] [2022-04-08 11:11:59,832 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:11:59,832 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:11:59,845 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:11:59,845 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2014266112] [2022-04-08 11:11:59,845 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:11:59,845 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:11:59,846 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:11:59,846 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:11:59,847 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (18)] Waiting until timeout for monitored process [2022-04-08 11:11:59,890 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-08 11:11:59,890 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:11:59,891 INFO L263 TraceCheckSpWp]: Trace formula consists of 147 conjuncts, 54 conjunts are in the unsatisfiable core [2022-04-08 11:11:59,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:11:59,902 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:12:00,814 INFO L272 TraceCheckUtils]: 0: Hoare triple {12144#true} call ULTIMATE.init(); {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 1: Hoare triple {12144#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(15, 2);call #Ultimate.allocInit(12, 3); {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 2: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12144#true} {12144#true} #69#return; {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L272 TraceCheckUtils]: 4: Hoare triple {12144#true} call #t~ret8 := main(); {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 5: Hoare triple {12144#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L272 TraceCheckUtils]: 6: Hoare triple {12144#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 7: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 8: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L290 TraceCheckUtils]: 9: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:00,815 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12144#true} {12144#true} #61#return; {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L290 TraceCheckUtils]: 11: Hoare triple {12144#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L272 TraceCheckUtils]: 12: Hoare triple {12144#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L290 TraceCheckUtils]: 13: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L290 TraceCheckUtils]: 14: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L290 TraceCheckUtils]: 15: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12144#true} {12144#true} #63#return; {12144#true} is VALID [2022-04-08 11:12:00,816 INFO L290 TraceCheckUtils]: 17: Hoare triple {12144#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:12:00,817 INFO L290 TraceCheckUtils]: 18: Hoare triple {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:12:00,817 INFO L272 TraceCheckUtils]: 19: Hoare triple {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:00,817 INFO L290 TraceCheckUtils]: 20: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:00,817 INFO L290 TraceCheckUtils]: 21: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:00,817 INFO L290 TraceCheckUtils]: 22: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:00,818 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {12144#true} {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:12:00,819 INFO L290 TraceCheckUtils]: 24: Hoare triple {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:12:00,820 INFO L290 TraceCheckUtils]: 25: Hoare triple {12200#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12225#(and (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:12:00,820 INFO L290 TraceCheckUtils]: 26: Hoare triple {12225#(and (= main_~x~0 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12229#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:12:00,821 INFO L290 TraceCheckUtils]: 27: Hoare triple {12229#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12233#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:12:00,821 INFO L272 TraceCheckUtils]: 28: Hoare triple {12233#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:00,821 INFO L290 TraceCheckUtils]: 29: Hoare triple {12144#true} ~cond := #in~cond; {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:12:00,821 INFO L290 TraceCheckUtils]: 30: Hoare triple {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:00,822 INFO L290 TraceCheckUtils]: 31: Hoare triple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:00,823 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} {12233#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {12229#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:12:00,823 INFO L290 TraceCheckUtils]: 33: Hoare triple {12229#(and (= (+ (- 1) main_~x~0) 0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !!(~x~0 <= ~X~0); {12254#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:12:00,824 INFO L290 TraceCheckUtils]: 34: Hoare triple {12254#(and (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0) (= (+ (- 1) main_~y~0) 0) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12258#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0))} is VALID [2022-04-08 11:12:00,824 INFO L290 TraceCheckUtils]: 35: Hoare triple {12258#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 1) main_~x~0) 0) (<= main_~x~0 main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:12:00,825 INFO L290 TraceCheckUtils]: 36: Hoare triple {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12266#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:12:00,825 INFO L272 TraceCheckUtils]: 37: Hoare triple {12266#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:00,825 INFO L290 TraceCheckUtils]: 38: Hoare triple {12144#true} ~cond := #in~cond; {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:12:00,826 INFO L290 TraceCheckUtils]: 39: Hoare triple {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:00,826 INFO L290 TraceCheckUtils]: 40: Hoare triple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:00,827 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} {12266#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} #65#return; {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:12:00,828 INFO L290 TraceCheckUtils]: 42: Hoare triple {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} assume !!(~x~0 <= ~X~0); {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:12:00,828 INFO L290 TraceCheckUtils]: 43: Hoare triple {12262#(and (= main_~y~0 2) (= main_~v~0 (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12288#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= main_~y~0 3) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:12:00,829 INFO L290 TraceCheckUtils]: 44: Hoare triple {12288#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ (- 2) main_~x~0) 0) (= main_~y~0 3) (<= main_~x~0 (+ main_~X~0 1)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12292#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ main_~x~0 (- 3)) 0) (= main_~y~0 3) (<= main_~x~0 (+ main_~X~0 2)))} is VALID [2022-04-08 11:12:00,829 INFO L290 TraceCheckUtils]: 45: Hoare triple {12292#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (+ main_~x~0 (- 3)) 0) (= main_~y~0 3) (<= main_~x~0 (+ main_~X~0 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12296#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (* main_~Y~0 3) main_~yx~0) (= main_~xy~0 (* main_~X~0 3)) (<= 1 main_~X~0))} is VALID [2022-04-08 11:12:00,830 INFO L272 TraceCheckUtils]: 46: Hoare triple {12296#(and (= (+ main_~v~0 (* main_~X~0 2) (* (- 2) main_~Y~0)) (+ (* main_~Y~0 6) (* main_~X~0 (- 5)))) (= (* main_~Y~0 3) main_~yx~0) (= main_~xy~0 (* main_~X~0 3)) (<= 1 main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:12:00,831 INFO L290 TraceCheckUtils]: 47: Hoare triple {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12304#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:12:00,831 INFO L290 TraceCheckUtils]: 48: Hoare triple {12304#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {12145#false} is VALID [2022-04-08 11:12:00,831 INFO L290 TraceCheckUtils]: 49: Hoare triple {12145#false} assume !false; {12145#false} is VALID [2022-04-08 11:12:00,832 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 10 proven. 23 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-08 11:12:00,832 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:12:03,905 INFO L290 TraceCheckUtils]: 49: Hoare triple {12145#false} assume !false; {12145#false} is VALID [2022-04-08 11:12:03,905 INFO L290 TraceCheckUtils]: 48: Hoare triple {12304#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {12145#false} is VALID [2022-04-08 11:12:03,906 INFO L290 TraceCheckUtils]: 47: Hoare triple {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12304#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:12:03,906 INFO L272 TraceCheckUtils]: 46: Hoare triple {12320#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:12:03,907 INFO L290 TraceCheckUtils]: 45: Hoare triple {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12320#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:12:03,910 INFO L290 TraceCheckUtils]: 44: Hoare triple {12328#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:12:03,912 INFO L290 TraceCheckUtils]: 43: Hoare triple {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12328#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:12:03,912 INFO L290 TraceCheckUtils]: 42: Hoare triple {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:12:03,913 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} {12338#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {12324#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:12:03,913 INFO L290 TraceCheckUtils]: 40: Hoare triple {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:03,914 INFO L290 TraceCheckUtils]: 39: Hoare triple {12348#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {12244#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:12:03,914 INFO L290 TraceCheckUtils]: 38: Hoare triple {12144#true} ~cond := #in~cond; {12348#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:12:03,914 INFO L272 TraceCheckUtils]: 37: Hoare triple {12338#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:03,915 INFO L290 TraceCheckUtils]: 36: Hoare triple {12144#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12338#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:12:03,915 INFO L290 TraceCheckUtils]: 35: Hoare triple {12144#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12144#true} is VALID [2022-04-08 11:12:03,915 INFO L290 TraceCheckUtils]: 34: Hoare triple {12144#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12144#true} is VALID [2022-04-08 11:12:03,915 INFO L290 TraceCheckUtils]: 33: Hoare triple {12144#true} assume !!(~x~0 <= ~X~0); {12144#true} is VALID [2022-04-08 11:12:03,915 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12144#true} {12144#true} #65#return; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 31: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 30: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 29: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L272 TraceCheckUtils]: 28: Hoare triple {12144#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 27: Hoare triple {12144#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 26: Hoare triple {12144#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 25: Hoare triple {12144#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 24: Hoare triple {12144#true} assume !!(~x~0 <= ~X~0); {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {12144#true} {12144#true} #65#return; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 22: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:03,916 INFO L290 TraceCheckUtils]: 21: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 20: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L272 TraceCheckUtils]: 19: Hoare triple {12144#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 18: Hoare triple {12144#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 17: Hoare triple {12144#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12144#true} {12144#true} #63#return; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 15: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 14: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 13: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L272 TraceCheckUtils]: 12: Hoare triple {12144#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L290 TraceCheckUtils]: 11: Hoare triple {12144#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {12144#true} is VALID [2022-04-08 11:12:03,917 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12144#true} {12144#true} #61#return; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 9: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 8: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 7: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L272 TraceCheckUtils]: 6: Hoare triple {12144#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 5: Hoare triple {12144#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L272 TraceCheckUtils]: 4: Hoare triple {12144#true} call #t~ret8 := main(); {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12144#true} {12144#true} #69#return; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 2: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L290 TraceCheckUtils]: 1: Hoare triple {12144#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(15, 2);call #Ultimate.allocInit(12, 3); {12144#true} is VALID [2022-04-08 11:12:03,918 INFO L272 TraceCheckUtils]: 0: Hoare triple {12144#true} call ULTIMATE.init(); {12144#true} is VALID [2022-04-08 11:12:03,919 INFO L134 CoverageAnalysis]: Checked inductivity of 43 backedges. 24 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-08 11:12:03,919 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:12:03,919 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [720661316] [2022-04-08 11:12:03,919 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:12:03,919 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2014266112] [2022-04-08 11:12:03,919 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2014266112] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:12:03,919 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:12:03,919 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 10] total 22 [2022-04-08 11:12:03,920 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:12:03,920 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1968230680] [2022-04-08 11:12:03,920 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1968230680] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:12:03,920 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:12:03,920 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-08 11:12:03,920 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1368974407] [2022-04-08 11:12:03,920 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:12:03,920 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:12:03,921 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:12:03,921 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:12:03,974 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:03,975 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-08 11:12:03,975 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:12:03,975 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-08 11:12:03,975 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=393, Unknown=0, NotChecked=0, Total=462 [2022-04-08 11:12:03,976 INFO L87 Difference]: Start difference. First operand 121 states and 138 transitions. Second operand has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:12:06,802 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:06,803 INFO L93 Difference]: Finished difference Result 142 states and 159 transitions. [2022-04-08 11:12:06,803 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-08 11:12:06,803 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 50 [2022-04-08 11:12:06,803 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:12:06,803 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:12:06,804 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 65 transitions. [2022-04-08 11:12:06,804 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:12:06,805 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 65 transitions. [2022-04-08 11:12:06,805 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 65 transitions. [2022-04-08 11:12:06,867 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:06,869 INFO L225 Difference]: With dead ends: 142 [2022-04-08 11:12:06,869 INFO L226 Difference]: Without dead ends: 140 [2022-04-08 11:12:06,870 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 75 SyntacticMatches, 4 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 94 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=97, Invalid=553, Unknown=0, NotChecked=0, Total=650 [2022-04-08 11:12:06,870 INFO L913 BasicCegarLoop]: 28 mSDtfsCounter, 20 mSDsluCounter, 186 mSDsCounter, 0 mSdLazyCounter, 502 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 22 SdHoareTripleChecker+Valid, 214 SdHoareTripleChecker+Invalid, 510 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 502 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-04-08 11:12:06,870 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [22 Valid, 214 Invalid, 510 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 502 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-04-08 11:12:06,870 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 140 states. [2022-04-08 11:12:07,134 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 140 to 129. [2022-04-08 11:12:07,134 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:12:07,134 INFO L82 GeneralOperation]: Start isEquivalent. First operand 140 states. Second operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:07,135 INFO L74 IsIncluded]: Start isIncluded. First operand 140 states. Second operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:07,135 INFO L87 Difference]: Start difference. First operand 140 states. Second operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:07,137 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:07,137 INFO L93 Difference]: Finished difference Result 140 states and 157 transitions. [2022-04-08 11:12:07,137 INFO L276 IsEmpty]: Start isEmpty. Operand 140 states and 157 transitions. [2022-04-08 11:12:07,137 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:12:07,137 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:12:07,137 INFO L74 IsIncluded]: Start isIncluded. First operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 140 states. [2022-04-08 11:12:07,137 INFO L87 Difference]: Start difference. First operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 140 states. [2022-04-08 11:12:07,139 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:07,139 INFO L93 Difference]: Finished difference Result 140 states and 157 transitions. [2022-04-08 11:12:07,139 INFO L276 IsEmpty]: Start isEmpty. Operand 140 states and 157 transitions. [2022-04-08 11:12:07,140 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:12:07,140 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:12:07,140 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:12:07,140 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:12:07,140 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 129 states, 95 states have (on average 1.1157894736842104) internal successors, (106), 99 states have internal predecessors, (106), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:07,141 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 129 states to 129 states and 144 transitions. [2022-04-08 11:12:07,142 INFO L78 Accepts]: Start accepts. Automaton has 129 states and 144 transitions. Word has length 50 [2022-04-08 11:12:07,142 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:12:07,142 INFO L478 AbstractCegarLoop]: Abstraction has 129 states and 144 transitions. [2022-04-08 11:12:07,142 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 17 states, 14 states have (on average 2.142857142857143) internal successors, (30), 16 states have internal predecessors, (30), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:12:07,142 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 129 states and 144 transitions. [2022-04-08 11:12:11,518 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 144 edges. 142 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:11,518 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 144 transitions. [2022-04-08 11:12:11,518 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 11:12:11,518 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:12:11,518 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:12:11,534 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (18)] Forceful destruction successful, exit code 0 [2022-04-08 11:12:11,719 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 18 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable17 [2022-04-08 11:12:11,719 INFO L403 AbstractCegarLoop]: === Iteration 19 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:12:11,719 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:12:11,720 INFO L85 PathProgramCache]: Analyzing trace with hash 850213676, now seen corresponding path program 3 times [2022-04-08 11:12:11,720 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:12:11,720 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1278703778] [2022-04-08 11:12:11,720 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:12:11,720 INFO L85 PathProgramCache]: Analyzing trace with hash 850213676, now seen corresponding path program 4 times [2022-04-08 11:12:11,720 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:12:11,720 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [75746855] [2022-04-08 11:12:11,720 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:12:11,720 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:12:11,735 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:12:11,735 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1104809516] [2022-04-08 11:12:11,735 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:12:11,735 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:12:11,736 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:12:11,736 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:12:11,738 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (19)] Waiting until timeout for monitored process [2022-04-08 11:12:11,770 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:12:11,770 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:12:11,771 INFO L263 TraceCheckSpWp]: Trace formula consists of 118 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-08 11:12:11,783 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:12:11,784 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:12:12,903 INFO L272 TraceCheckUtils]: 0: Hoare triple {13295#true} call ULTIMATE.init(); {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L290 TraceCheckUtils]: 1: Hoare triple {13295#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(15, 2);call #Ultimate.allocInit(12, 3); {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L290 TraceCheckUtils]: 2: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13295#true} {13295#true} #69#return; {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L272 TraceCheckUtils]: 4: Hoare triple {13295#true} call #t~ret8 := main(); {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L290 TraceCheckUtils]: 5: Hoare triple {13295#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {13295#true} is VALID [2022-04-08 11:12:12,903 INFO L272 TraceCheckUtils]: 6: Hoare triple {13295#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 7: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 8: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 9: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13295#true} {13295#true} #61#return; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 11: Hoare triple {13295#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L272 TraceCheckUtils]: 12: Hoare triple {13295#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 13: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 14: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L290 TraceCheckUtils]: 15: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,904 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {13295#true} {13295#true} #63#return; {13295#true} is VALID [2022-04-08 11:12:12,905 INFO L290 TraceCheckUtils]: 17: Hoare triple {13295#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:12:12,905 INFO L290 TraceCheckUtils]: 18: Hoare triple {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:12:12,905 INFO L272 TraceCheckUtils]: 19: Hoare triple {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,905 INFO L290 TraceCheckUtils]: 20: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,905 INFO L290 TraceCheckUtils]: 21: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,905 INFO L290 TraceCheckUtils]: 22: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,906 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13295#true} {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} #65#return; {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:12:12,907 INFO L290 TraceCheckUtils]: 24: Hoare triple {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !!(~x~0 <= ~X~0); {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:12:12,907 INFO L290 TraceCheckUtils]: 25: Hoare triple {13351#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {13376#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 0))} is VALID [2022-04-08 11:12:12,909 INFO L290 TraceCheckUtils]: 26: Hoare triple {13376#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} is VALID [2022-04-08 11:12:12,909 INFO L290 TraceCheckUtils]: 27: Hoare triple {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} is VALID [2022-04-08 11:12:12,909 INFO L272 TraceCheckUtils]: 28: Hoare triple {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,909 INFO L290 TraceCheckUtils]: 29: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,909 INFO L290 TraceCheckUtils]: 30: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,909 INFO L290 TraceCheckUtils]: 31: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,910 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {13295#true} {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} #65#return; {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} is VALID [2022-04-08 11:12:12,910 INFO L290 TraceCheckUtils]: 33: Hoare triple {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} assume !!(~x~0 <= ~X~0); {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} is VALID [2022-04-08 11:12:12,911 INFO L290 TraceCheckUtils]: 34: Hoare triple {13380#(and (<= (* main_~Y~0 4) (+ main_~X~0 main_~v~0)) (<= main_~x~0 1))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {13405#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)))} is VALID [2022-04-08 11:12:12,912 INFO L290 TraceCheckUtils]: 35: Hoare triple {13405#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} is VALID [2022-04-08 11:12:12,913 INFO L290 TraceCheckUtils]: 36: Hoare triple {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} is VALID [2022-04-08 11:12:12,913 INFO L272 TraceCheckUtils]: 37: Hoare triple {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,913 INFO L290 TraceCheckUtils]: 38: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,913 INFO L290 TraceCheckUtils]: 39: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,913 INFO L290 TraceCheckUtils]: 40: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,914 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {13295#true} {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} #65#return; {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} is VALID [2022-04-08 11:12:12,914 INFO L290 TraceCheckUtils]: 42: Hoare triple {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} assume !!(~x~0 <= ~X~0); {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} is VALID [2022-04-08 11:12:12,915 INFO L290 TraceCheckUtils]: 43: Hoare triple {13409#(and (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 4) 1)) (<= main_~x~0 2))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {13434#(and (< 0 (div (+ (- 1) main_~X~0) 4)) (<= main_~x~0 2))} is VALID [2022-04-08 11:12:12,922 INFO L290 TraceCheckUtils]: 44: Hoare triple {13434#(and (< 0 (div (+ (- 1) main_~X~0) 4)) (<= main_~x~0 2))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} is VALID [2022-04-08 11:12:12,924 INFO L290 TraceCheckUtils]: 45: Hoare triple {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} is VALID [2022-04-08 11:12:12,924 INFO L272 TraceCheckUtils]: 46: Hoare triple {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:12,924 INFO L290 TraceCheckUtils]: 47: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:12,924 INFO L290 TraceCheckUtils]: 48: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:12,924 INFO L290 TraceCheckUtils]: 49: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:12,925 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {13295#true} {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} #65#return; {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} is VALID [2022-04-08 11:12:12,926 INFO L290 TraceCheckUtils]: 51: Hoare triple {13438#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 4)))} assume !(~x~0 <= ~X~0); {13296#false} is VALID [2022-04-08 11:12:12,926 INFO L290 TraceCheckUtils]: 52: Hoare triple {13296#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {13296#false} is VALID [2022-04-08 11:12:12,926 INFO L272 TraceCheckUtils]: 53: Hoare triple {13296#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {13296#false} is VALID [2022-04-08 11:12:12,927 INFO L290 TraceCheckUtils]: 54: Hoare triple {13296#false} ~cond := #in~cond; {13296#false} is VALID [2022-04-08 11:12:12,927 INFO L290 TraceCheckUtils]: 55: Hoare triple {13296#false} assume 0 == ~cond; {13296#false} is VALID [2022-04-08 11:12:12,927 INFO L290 TraceCheckUtils]: 56: Hoare triple {13296#false} assume !false; {13296#false} is VALID [2022-04-08 11:12:12,927 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 11:12:12,927 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:12:13,433 INFO L290 TraceCheckUtils]: 56: Hoare triple {13296#false} assume !false; {13296#false} is VALID [2022-04-08 11:12:13,433 INFO L290 TraceCheckUtils]: 55: Hoare triple {13296#false} assume 0 == ~cond; {13296#false} is VALID [2022-04-08 11:12:13,433 INFO L290 TraceCheckUtils]: 54: Hoare triple {13296#false} ~cond := #in~cond; {13296#false} is VALID [2022-04-08 11:12:13,433 INFO L272 TraceCheckUtils]: 53: Hoare triple {13296#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {13296#false} is VALID [2022-04-08 11:12:13,433 INFO L290 TraceCheckUtils]: 52: Hoare triple {13296#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {13296#false} is VALID [2022-04-08 11:12:13,434 INFO L290 TraceCheckUtils]: 51: Hoare triple {13490#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {13296#false} is VALID [2022-04-08 11:12:13,434 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {13295#true} {13490#(<= main_~x~0 main_~X~0)} #65#return; {13490#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:12:13,434 INFO L290 TraceCheckUtils]: 49: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,434 INFO L290 TraceCheckUtils]: 48: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,434 INFO L290 TraceCheckUtils]: 47: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,434 INFO L272 TraceCheckUtils]: 46: Hoare triple {13490#(<= main_~x~0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,435 INFO L290 TraceCheckUtils]: 45: Hoare triple {13490#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13490#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:12:13,436 INFO L290 TraceCheckUtils]: 44: Hoare triple {13512#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13490#(<= main_~x~0 main_~X~0)} is VALID [2022-04-08 11:12:13,436 INFO L290 TraceCheckUtils]: 43: Hoare triple {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {13512#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-08 11:12:13,437 INFO L290 TraceCheckUtils]: 42: Hoare triple {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !!(~x~0 <= ~X~0); {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:12:13,437 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {13295#true} {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} #65#return; {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:12:13,437 INFO L290 TraceCheckUtils]: 40: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,437 INFO L290 TraceCheckUtils]: 39: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,437 INFO L290 TraceCheckUtils]: 38: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,438 INFO L272 TraceCheckUtils]: 37: Hoare triple {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,438 INFO L290 TraceCheckUtils]: 36: Hoare triple {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:12:13,439 INFO L290 TraceCheckUtils]: 35: Hoare triple {13541#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13516#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:12:13,439 INFO L290 TraceCheckUtils]: 34: Hoare triple {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {13541#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-08 11:12:13,440 INFO L290 TraceCheckUtils]: 33: Hoare triple {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume !!(~x~0 <= ~X~0); {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:12:13,440 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {13295#true} {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} #65#return; {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:12:13,440 INFO L290 TraceCheckUtils]: 31: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,440 INFO L290 TraceCheckUtils]: 30: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,440 INFO L290 TraceCheckUtils]: 29: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,440 INFO L272 TraceCheckUtils]: 28: Hoare triple {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,441 INFO L290 TraceCheckUtils]: 27: Hoare triple {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:12:13,441 INFO L290 TraceCheckUtils]: 26: Hoare triple {13570#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {13545#(or (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)))} is VALID [2022-04-08 11:12:13,443 INFO L290 TraceCheckUtils]: 25: Hoare triple {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {13570#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-08 11:12:13,443 INFO L290 TraceCheckUtils]: 24: Hoare triple {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} assume !!(~x~0 <= ~X~0); {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} is VALID [2022-04-08 11:12:13,443 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {13295#true} {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} #65#return; {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} is VALID [2022-04-08 11:12:13,444 INFO L290 TraceCheckUtils]: 22: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,444 INFO L290 TraceCheckUtils]: 21: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,444 INFO L290 TraceCheckUtils]: 20: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,444 INFO L272 TraceCheckUtils]: 19: Hoare triple {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,448 INFO L290 TraceCheckUtils]: 18: Hoare triple {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 17: Hoare triple {13295#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {13574#(or (<= (+ main_~x~0 3) main_~X~0) (<= 0 (+ main_~v~0 (* main_~Y~0 2))) (<= (* main_~Y~0 2) 0))} is VALID [2022-04-08 11:12:13,449 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {13295#true} {13295#true} #63#return; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 15: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 14: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 13: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L272 TraceCheckUtils]: 12: Hoare triple {13295#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 11: Hoare triple {13295#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13295#true} {13295#true} #61#return; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 9: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 8: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L290 TraceCheckUtils]: 7: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-08 11:12:13,449 INFO L272 TraceCheckUtils]: 6: Hoare triple {13295#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L290 TraceCheckUtils]: 5: Hoare triple {13295#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L272 TraceCheckUtils]: 4: Hoare triple {13295#true} call #t~ret8 := main(); {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13295#true} {13295#true} #69#return; {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L290 TraceCheckUtils]: 2: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L290 TraceCheckUtils]: 1: Hoare triple {13295#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(15, 2);call #Ultimate.allocInit(12, 3); {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L272 TraceCheckUtils]: 0: Hoare triple {13295#true} call ULTIMATE.init(); {13295#true} is VALID [2022-04-08 11:12:13,450 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 11:12:13,450 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:12:13,450 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [75746855] [2022-04-08 11:12:13,450 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:12:13,450 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1104809516] [2022-04-08 11:12:13,451 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1104809516] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:12:13,451 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:12:13,451 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 16 [2022-04-08 11:12:13,451 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:12:13,451 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1278703778] [2022-04-08 11:12:13,451 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1278703778] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:12:13,451 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:12:13,451 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-08 11:12:13,451 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1234994821] [2022-04-08 11:12:13,451 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:12:13,451 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 57 [2022-04-08 11:12:13,452 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:12:13,452 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:12:13,487 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:13,487 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-08 11:12:13,487 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:12:13,487 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-08 11:12:13,487 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=179, Unknown=0, NotChecked=0, Total=240 [2022-04-08 11:12:13,487 INFO L87 Difference]: Start difference. First operand 129 states and 144 transitions. Second operand has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:12:14,597 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:14,597 INFO L93 Difference]: Finished difference Result 140 states and 155 transitions. [2022-04-08 11:12:14,597 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-08 11:12:14,597 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 57 [2022-04-08 11:12:14,597 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:12:14,598 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:12:14,599 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 65 transitions. [2022-04-08 11:12:14,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:12:14,599 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 65 transitions. [2022-04-08 11:12:14,601 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 65 transitions. [2022-04-08 11:12:14,654 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:14,656 INFO L225 Difference]: With dead ends: 140 [2022-04-08 11:12:14,656 INFO L226 Difference]: Without dead ends: 132 [2022-04-08 11:12:14,656 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 113 GetRequests, 99 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 37 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=179, Unknown=0, NotChecked=0, Total=240 [2022-04-08 11:12:14,657 INFO L913 BasicCegarLoop]: 33 mSDtfsCounter, 2 mSDsluCounter, 121 mSDsCounter, 0 mSdLazyCounter, 225 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 2 SdHoareTripleChecker+Valid, 154 SdHoareTripleChecker+Invalid, 228 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 225 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-08 11:12:14,657 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [2 Valid, 154 Invalid, 228 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 225 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-08 11:12:14,657 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 132 states. [2022-04-08 11:12:14,916 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 132 to 130. [2022-04-08 11:12:14,916 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:12:14,916 INFO L82 GeneralOperation]: Start isEquivalent. First operand 132 states. Second operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:14,916 INFO L74 IsIncluded]: Start isIncluded. First operand 132 states. Second operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:14,916 INFO L87 Difference]: Start difference. First operand 132 states. Second operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:14,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:14,918 INFO L93 Difference]: Finished difference Result 132 states and 147 transitions. [2022-04-08 11:12:14,918 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 147 transitions. [2022-04-08 11:12:14,918 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:12:14,918 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:12:14,919 INFO L74 IsIncluded]: Start isIncluded. First operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) Second operand 132 states. [2022-04-08 11:12:14,919 INFO L87 Difference]: Start difference. First operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) Second operand 132 states. [2022-04-08 11:12:14,920 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:12:14,920 INFO L93 Difference]: Finished difference Result 132 states and 147 transitions. [2022-04-08 11:12:14,920 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 147 transitions. [2022-04-08 11:12:14,921 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:12:14,921 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:12:14,921 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:12:14,921 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:12:14,921 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 130 states, 96 states have (on average 1.1145833333333333) internal successors, (107), 99 states have internal predecessors, (107), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 16 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:12:14,923 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 130 states to 130 states and 145 transitions. [2022-04-08 11:12:14,923 INFO L78 Accepts]: Start accepts. Automaton has 130 states and 145 transitions. Word has length 57 [2022-04-08 11:12:14,923 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:12:14,923 INFO L478 AbstractCegarLoop]: Abstraction has 130 states and 145 transitions. [2022-04-08 11:12:14,924 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 3.2222222222222223) internal successors, (29), 9 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:12:14,924 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 130 states and 145 transitions. [2022-04-08 11:12:19,296 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 145 edges. 143 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:12:19,297 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 145 transitions. [2022-04-08 11:12:19,297 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 11:12:19,297 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:12:19,297 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:12:19,315 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (19)] Forceful destruction successful, exit code 0 [2022-04-08 11:12:19,515 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable18,19 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:12:19,515 INFO L403 AbstractCegarLoop]: === Iteration 20 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:12:19,516 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:12:19,516 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 5 times [2022-04-08 11:12:19,516 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:12:19,516 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1819415528] [2022-04-08 11:12:19,516 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:12:19,516 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 6 times [2022-04-08 11:12:19,516 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:12:19,516 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1477457708] [2022-04-08 11:12:19,516 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:12:19,517 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:12:19,526 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:12:19,526 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [652887250] [2022-04-08 11:12:19,526 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:12:19,527 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:12:19,527 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:12:19,527 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:12:19,532 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (20)] Waiting until timeout for monitored process [2022-04-08 11:12:19,901 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-08 11:12:19,901 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:12:19,902 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 33 conjunts are in the unsatisfiable core [2022-04-08 11:12:19,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:12:19,919 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:12:38,163 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:12:46,937 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:12:50,979 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:13:22,375 INFO L272 TraceCheckUtils]: 0: Hoare triple {14456#true} call ULTIMATE.init(); {14456#true} is VALID [2022-04-08 11:13:22,375 INFO L290 TraceCheckUtils]: 1: Hoare triple {14456#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(15, 2);call #Ultimate.allocInit(12, 3); {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L290 TraceCheckUtils]: 2: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14456#true} {14456#true} #69#return; {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L272 TraceCheckUtils]: 4: Hoare triple {14456#true} call #t~ret8 := main(); {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L290 TraceCheckUtils]: 5: Hoare triple {14456#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L272 TraceCheckUtils]: 6: Hoare triple {14456#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,376 INFO L290 TraceCheckUtils]: 7: Hoare triple {14456#true} ~cond := #in~cond; {14482#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 11:13:22,376 INFO L290 TraceCheckUtils]: 8: Hoare triple {14482#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {14486#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:13:22,377 INFO L290 TraceCheckUtils]: 9: Hoare triple {14486#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {14486#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:13:22,377 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {14486#(not (= |assume_abort_if_not_#in~cond| 0))} {14456#true} #61#return; {14493#(and (<= main_~X~0 20) (<= 0 main_~X~0))} is VALID [2022-04-08 11:13:22,378 INFO L290 TraceCheckUtils]: 11: Hoare triple {14493#(and (<= main_~X~0 20) (<= 0 main_~X~0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {14493#(and (<= main_~X~0 20) (<= 0 main_~X~0))} is VALID [2022-04-08 11:13:22,378 INFO L272 TraceCheckUtils]: 12: Hoare triple {14493#(and (<= main_~X~0 20) (<= 0 main_~X~0))} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,378 INFO L290 TraceCheckUtils]: 13: Hoare triple {14456#true} ~cond := #in~cond; {14482#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-08 11:13:22,378 INFO L290 TraceCheckUtils]: 14: Hoare triple {14482#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {14486#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:13:22,378 INFO L290 TraceCheckUtils]: 15: Hoare triple {14486#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {14486#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-08 11:13:22,379 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {14486#(not (= |assume_abort_if_not_#in~cond| 0))} {14493#(and (<= main_~X~0 20) (<= 0 main_~X~0))} #63#return; {14512#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-08 11:13:22,379 INFO L290 TraceCheckUtils]: 17: Hoare triple {14512#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:13:22,380 INFO L290 TraceCheckUtils]: 18: Hoare triple {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:13:22,380 INFO L272 TraceCheckUtils]: 19: Hoare triple {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,380 INFO L290 TraceCheckUtils]: 20: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:13:22,380 INFO L290 TraceCheckUtils]: 21: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:13:22,380 INFO L290 TraceCheckUtils]: 22: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:13:22,381 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {14456#true} {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} #65#return; {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:13:22,381 INFO L290 TraceCheckUtils]: 24: Hoare triple {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !!(~x~0 <= ~X~0); {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:13:22,382 INFO L290 TraceCheckUtils]: 25: Hoare triple {14516#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,382 INFO L290 TraceCheckUtils]: 26: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,382 INFO L290 TraceCheckUtils]: 27: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,382 INFO L272 TraceCheckUtils]: 28: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,382 INFO L290 TraceCheckUtils]: 29: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:13:22,382 INFO L290 TraceCheckUtils]: 30: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:13:22,383 INFO L290 TraceCheckUtils]: 31: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:13:22,383 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {14456#true} {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} #65#return; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,383 INFO L290 TraceCheckUtils]: 33: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume !!(~x~0 <= ~X~0); {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,384 INFO L290 TraceCheckUtils]: 34: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,384 INFO L290 TraceCheckUtils]: 35: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,384 INFO L290 TraceCheckUtils]: 36: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,385 INFO L272 TraceCheckUtils]: 37: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,385 INFO L290 TraceCheckUtils]: 38: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:13:22,385 INFO L290 TraceCheckUtils]: 39: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:13:22,385 INFO L290 TraceCheckUtils]: 40: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:13:22,385 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {14456#true} {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} #65#return; {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,386 INFO L290 TraceCheckUtils]: 42: Hoare triple {14541#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume !!(~x~0 <= ~X~0); {14593#(and (<= main_~x~0 main_~X~0) (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,387 INFO L290 TraceCheckUtils]: 43: Hoare triple {14593#(and (<= main_~x~0 main_~X~0) (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {14597#(and (<= main_~x~0 main_~X~0) (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0))} is VALID [2022-04-08 11:13:22,388 INFO L290 TraceCheckUtils]: 44: Hoare triple {14597#(and (<= main_~x~0 main_~X~0) (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14601#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:13:22,388 INFO L290 TraceCheckUtils]: 45: Hoare triple {14601#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14605#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:13:22,388 INFO L272 TraceCheckUtils]: 46: Hoare triple {14605#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:13:22,389 INFO L290 TraceCheckUtils]: 47: Hoare triple {14456#true} ~cond := #in~cond; {14612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:13:22,389 INFO L290 TraceCheckUtils]: 48: Hoare triple {14612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:13:22,389 INFO L290 TraceCheckUtils]: 49: Hoare triple {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:13:22,390 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} {14605#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} #65#return; {14623#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:13:22,391 INFO L290 TraceCheckUtils]: 51: Hoare triple {14623#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {14627#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:13:22,460 INFO L290 TraceCheckUtils]: 52: Hoare triple {14627#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {14631#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (or (and (or (and (= (mod main_~xy~0 main_~y~0) 0) (not (= main_~y~0 0)) (<= (div main_~xy~0 main_~y~0) (+ main_~X~0 1)) (< main_~X~0 (div main_~xy~0 main_~y~0))) (and (= main_~xy~0 0) (= main_~y~0 0))) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) (+ main_~X~0 1)) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} is VALID [2022-04-08 11:13:22,470 INFO L272 TraceCheckUtils]: 53: Hoare triple {14631#(and (< (* main_~Y~0 2) main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (or (and (or (and (= (mod main_~xy~0 main_~y~0) 0) (not (= main_~y~0 0)) (<= (div main_~xy~0 main_~y~0) (+ main_~X~0 1)) (< main_~X~0 (div main_~xy~0 main_~y~0))) (and (= main_~xy~0 0) (= main_~y~0 0))) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) (+ main_~X~0 1)) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:13:22,471 INFO L290 TraceCheckUtils]: 54: Hoare triple {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {14639#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:13:22,471 INFO L290 TraceCheckUtils]: 55: Hoare triple {14639#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {14457#false} is VALID [2022-04-08 11:13:22,471 INFO L290 TraceCheckUtils]: 56: Hoare triple {14457#false} assume !false; {14457#false} is VALID [2022-04-08 11:13:22,471 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 25 proven. 12 refuted. 0 times theorem prover too weak. 23 trivial. 0 not checked. [2022-04-08 11:13:22,472 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:13:30,572 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:13:37,310 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:14:23,482 INFO L290 TraceCheckUtils]: 56: Hoare triple {14457#false} assume !false; {14457#false} is VALID [2022-04-08 11:14:23,483 INFO L290 TraceCheckUtils]: 55: Hoare triple {14639#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {14457#false} is VALID [2022-04-08 11:14:23,483 INFO L290 TraceCheckUtils]: 54: Hoare triple {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {14639#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:14:23,484 INFO L272 TraceCheckUtils]: 53: Hoare triple {14655#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:14:23,485 INFO L290 TraceCheckUtils]: 52: Hoare triple {14659#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {14655#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:14:23,486 INFO L290 TraceCheckUtils]: 51: Hoare triple {14663#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {14659#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-08 11:14:23,487 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} {14667#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {14663#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:14:23,487 INFO L290 TraceCheckUtils]: 49: Hoare triple {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:14:23,487 INFO L290 TraceCheckUtils]: 48: Hoare triple {14677#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {14616#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:14:23,488 INFO L290 TraceCheckUtils]: 47: Hoare triple {14456#true} ~cond := #in~cond; {14677#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:14:23,488 INFO L272 TraceCheckUtils]: 46: Hoare triple {14667#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:25,490 WARN L290 TraceCheckUtils]: 45: Hoare triple {14684#(or (<= main_~x~0 main_~X~0) (and (or (= (+ main_~X~0 main_~v~0 (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) main_~x~0) 2)) (+ (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 2) (* 2 (* main_~Y~0 main_~x~0)))) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 0)) (= main_~X~0 0) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0))) (or (forall ((main_~y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) 0)) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14667#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is UNKNOWN [2022-04-08 11:14:25,504 INFO L290 TraceCheckUtils]: 44: Hoare triple {14688#(forall ((v_main_~x~0_71 Int)) (or (not (<= v_main_~x~0_71 (+ main_~x~0 1))) (and (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_71 (- 2) main_~Y~0)) 2) 0)) (= (+ (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) v_main_~x~0_71) 2) main_~X~0 main_~v~0) (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 2))) (= main_~X~0 0) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 0))) (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_71 (- 2) main_~Y~0)) 2) 0)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* main_~y~0 2) (* main_~Y~0 2)) (+ main_~X~0 main_~v~0 (* 2 (* v_main_~x~0_71 main_~y~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) 0)))) (<= v_main_~x~0_71 main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14684#(or (<= main_~x~0 main_~X~0) (and (or (= (+ main_~X~0 main_~v~0 (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) main_~x~0) 2)) (+ (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 2) (* 2 (* main_~Y~0 main_~x~0)))) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 0)) (= main_~X~0 0) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0))) (or (forall ((main_~y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) 0)) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0)))))} is VALID [2022-04-08 11:14:28,250 WARN L290 TraceCheckUtils]: 43: Hoare triple {14692#(forall ((v_main_~x~0_71 Int)) (or (not (<= v_main_~x~0_71 (+ main_~x~0 1))) (and (or (= main_~X~0 0) (forall ((aux_div_v_main_~v~0_116_72 Int)) (or (not (= (mod (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 0)) (= (+ (* 2 aux_div_v_main_~v~0_116_72) (* 2 (* v_main_~x~0_71 (div (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0)))) (+ (* main_~Y~0 2) (* 2 (div (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0)))) (<= (+ main_~X~0 (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* 2 aux_div_v_main_~v~0_116_72)))))) (or (<= main_~X~0 (* 2 (* v_main_~x~0_71 main_~Y~0))) (forall ((main_~y~0 Int)) (= (+ (* main_~y~0 2) (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_71 main_~y~0)) (* main_~Y~0 2)))) (not (= main_~X~0 0)))) (<= v_main_~x~0_71 main_~X~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {14688#(forall ((v_main_~x~0_71 Int)) (or (not (<= v_main_~x~0_71 (+ main_~x~0 1))) (and (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_71 (- 2) main_~Y~0)) 2) 0)) (= (+ (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) v_main_~x~0_71) 2) main_~X~0 main_~v~0) (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 2))) (= main_~X~0 0) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 0))) (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_71 (- 2) main_~Y~0)) 2) 0)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* main_~y~0 2) (* main_~Y~0 2)) (+ main_~X~0 main_~v~0 (* 2 (* v_main_~x~0_71 main_~y~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) 0)))) (<= v_main_~x~0_71 main_~X~0)))} is UNKNOWN [2022-04-08 11:14:28,300 INFO L290 TraceCheckUtils]: 42: Hoare triple {14456#true} assume !!(~x~0 <= ~X~0); {14692#(forall ((v_main_~x~0_71 Int)) (or (not (<= v_main_~x~0_71 (+ main_~x~0 1))) (and (or (= main_~X~0 0) (forall ((aux_div_v_main_~v~0_116_72 Int)) (or (not (= (mod (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0) 0)) (= (+ (* 2 aux_div_v_main_~v~0_116_72) (* 2 (* v_main_~x~0_71 (div (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0)))) (+ (* main_~Y~0 2) (* 2 (div (+ (div (+ (* 2 aux_div_v_main_~v~0_116_72) (* v_main_~x~0_71 main_~Y~0 2)) (- 2)) main_~Y~0 (* v_main_~x~0_71 main_~Y~0)) main_~X~0)))) (<= (+ main_~X~0 (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_71 main_~Y~0)) (* 2 aux_div_v_main_~v~0_116_72)))))) (or (<= main_~X~0 (* 2 (* v_main_~x~0_71 main_~Y~0))) (forall ((main_~y~0 Int)) (= (+ (* main_~y~0 2) (* main_~Y~0 2)) (+ (* 2 (* v_main_~x~0_71 main_~y~0)) (* main_~Y~0 2)))) (not (= main_~X~0 0)))) (<= v_main_~x~0_71 main_~X~0)))} is VALID [2022-04-08 11:14:28,301 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 40: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 39: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 38: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L272 TraceCheckUtils]: 37: Hoare triple {14456#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 36: Hoare triple {14456#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 35: Hoare triple {14456#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 34: Hoare triple {14456#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 33: Hoare triple {14456#true} assume !!(~x~0 <= ~X~0); {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-08 11:14:28,301 INFO L290 TraceCheckUtils]: 31: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 30: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 29: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L272 TraceCheckUtils]: 28: Hoare triple {14456#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 27: Hoare triple {14456#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 26: Hoare triple {14456#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 25: Hoare triple {14456#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 24: Hoare triple {14456#true} assume !!(~x~0 <= ~X~0); {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 22: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 21: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 20: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L272 TraceCheckUtils]: 19: Hoare triple {14456#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 18: Hoare triple {14456#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {14456#true} is VALID [2022-04-08 11:14:28,302 INFO L290 TraceCheckUtils]: 17: Hoare triple {14456#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {14456#true} {14456#true} #63#return; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 15: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 14: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 13: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L272 TraceCheckUtils]: 12: Hoare triple {14456#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 11: Hoare triple {14456#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {14456#true} {14456#true} #61#return; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 9: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 8: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 7: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L272 TraceCheckUtils]: 6: Hoare triple {14456#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L290 TraceCheckUtils]: 5: Hoare triple {14456#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L272 TraceCheckUtils]: 4: Hoare triple {14456#true} call #t~ret8 := main(); {14456#true} is VALID [2022-04-08 11:14:28,303 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14456#true} {14456#true} #69#return; {14456#true} is VALID [2022-04-08 11:14:28,304 INFO L290 TraceCheckUtils]: 2: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-08 11:14:28,304 INFO L290 TraceCheckUtils]: 1: Hoare triple {14456#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(15, 2);call #Ultimate.allocInit(12, 3); {14456#true} is VALID [2022-04-08 11:14:28,304 INFO L272 TraceCheckUtils]: 0: Hoare triple {14456#true} call ULTIMATE.init(); {14456#true} is VALID [2022-04-08 11:14:28,304 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 29 proven. 1 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-08 11:14:28,304 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:14:28,304 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1477457708] [2022-04-08 11:14:28,304 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:14:28,304 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [652887250] [2022-04-08 11:14:28,304 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [652887250] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:14:28,305 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:14:28,305 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 13] total 27 [2022-04-08 11:14:28,305 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:14:28,305 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1819415528] [2022-04-08 11:14:28,305 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1819415528] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:14:28,305 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:14:28,305 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [19] imperfect sequences [] total 19 [2022-04-08 11:14:28,305 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1977041553] [2022-04-08 11:14:28,305 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:14:28,306 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) Word has length 57 [2022-04-08 11:14:28,306 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:14:28,306 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) [2022-04-08 11:14:28,687 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:14:28,687 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-04-08 11:14:28,687 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:14:28,688 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-04-08 11:14:28,688 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=113, Invalid=584, Unknown=5, NotChecked=0, Total=702 [2022-04-08 11:14:28,688 INFO L87 Difference]: Start difference. First operand 130 states and 145 transitions. Second operand has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) [2022-04-08 11:14:41,394 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.01s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:14:44,634 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:15:00,505 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.63s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:15:02,528 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:15:09,624 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:09,624 INFO L93 Difference]: Finished difference Result 145 states and 162 transitions. [2022-04-08 11:15:09,624 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2022-04-08 11:15:09,624 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) Word has length 57 [2022-04-08 11:15:09,625 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:15:09,625 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) [2022-04-08 11:15:09,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 76 transitions. [2022-04-08 11:15:09,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) [2022-04-08 11:15:09,627 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 76 transitions. [2022-04-08 11:15:09,627 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 31 states and 76 transitions. [2022-04-08 11:15:10,828 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:15:10,830 INFO L225 Difference]: With dead ends: 145 [2022-04-08 11:15:10,830 INFO L226 Difference]: Without dead ends: 135 [2022-04-08 11:15:10,831 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 131 GetRequests, 87 SyntacticMatches, 1 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 383 ImplicationChecksByTransitivity, 42.5s TimeCoverageRelationStatistics Valid=361, Invalid=1613, Unknown=6, NotChecked=0, Total=1980 [2022-04-08 11:15:10,831 INFO L913 BasicCegarLoop]: 21 mSDtfsCounter, 37 mSDsluCounter, 101 mSDsCounter, 0 mSdLazyCounter, 368 mSolverCounterSat, 26 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 10.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 40 SdHoareTripleChecker+Valid, 122 SdHoareTripleChecker+Invalid, 396 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 26 IncrementalHoareTripleChecker+Valid, 368 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 10.0s IncrementalHoareTripleChecker+Time [2022-04-08 11:15:10,831 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [40 Valid, 122 Invalid, 396 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [26 Valid, 368 Invalid, 2 Unknown, 0 Unchecked, 10.0s Time] [2022-04-08 11:15:10,832 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 135 states. [2022-04-08 11:15:11,190 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 135 to 128. [2022-04-08 11:15:11,190 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:15:11,190 INFO L82 GeneralOperation]: Start isEquivalent. First operand 135 states. Second operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:15:11,190 INFO L74 IsIncluded]: Start isIncluded. First operand 135 states. Second operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:15:11,190 INFO L87 Difference]: Start difference. First operand 135 states. Second operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:15:11,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:11,192 INFO L93 Difference]: Finished difference Result 135 states and 150 transitions. [2022-04-08 11:15:11,192 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 150 transitions. [2022-04-08 11:15:11,193 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:15:11,193 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:15:11,193 INFO L74 IsIncluded]: Start isIncluded. First operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) Second operand 135 states. [2022-04-08 11:15:11,193 INFO L87 Difference]: Start difference. First operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) Second operand 135 states. [2022-04-08 11:15:11,195 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:11,195 INFO L93 Difference]: Finished difference Result 135 states and 150 transitions. [2022-04-08 11:15:11,195 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 150 transitions. [2022-04-08 11:15:11,195 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:15:11,195 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:15:11,195 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:15:11,195 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:15:11,195 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 128 states, 94 states have (on average 1.0957446808510638) internal successors, (103), 99 states have internal predecessors, (103), 20 states have call successors, (20), 14 states have call predecessors, (20), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:15:11,197 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 128 states to 128 states and 141 transitions. [2022-04-08 11:15:11,197 INFO L78 Accepts]: Start accepts. Automaton has 128 states and 141 transitions. Word has length 57 [2022-04-08 11:15:11,197 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:15:11,197 INFO L478 AbstractCegarLoop]: Abstraction has 128 states and 141 transitions. [2022-04-08 11:15:11,197 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 19 states, 17 states have (on average 1.7647058823529411) internal successors, (30), 16 states have internal predecessors, (30), 6 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 5 states have call successors, (6) [2022-04-08 11:15:11,197 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 128 states and 141 transitions. [2022-04-08 11:15:15,639 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 141 edges. 139 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:15:15,639 INFO L276 IsEmpty]: Start isEmpty. Operand 128 states and 141 transitions. [2022-04-08 11:15:15,640 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 11:15:15,640 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:15:15,640 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:15:15,657 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (20)] Forceful destruction successful, exit code 0 [2022-04-08 11:15:15,845 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable19,20 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:15:15,845 INFO L403 AbstractCegarLoop]: === Iteration 21 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:15:15,845 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:15:15,845 INFO L85 PathProgramCache]: Analyzing trace with hash 1124973290, now seen corresponding path program 7 times [2022-04-08 11:15:15,845 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:15:15,845 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [18487791] [2022-04-08 11:15:15,846 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:15:15,846 INFO L85 PathProgramCache]: Analyzing trace with hash 1124973290, now seen corresponding path program 8 times [2022-04-08 11:15:15,846 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:15:15,846 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1502837086] [2022-04-08 11:15:15,846 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:15:15,846 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:15:15,854 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:15:15,854 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [38820917] [2022-04-08 11:15:15,855 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:15:15,855 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:15:15,855 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:15:15,856 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:15:15,866 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (21)] Waiting until timeout for monitored process [2022-04-08 11:15:15,903 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:15:15,904 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:15:15,905 INFO L263 TraceCheckSpWp]: Trace formula consists of 159 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-08 11:15:15,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:15:15,917 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:15:18,376 INFO L272 TraceCheckUtils]: 0: Hoare triple {15676#true} call ULTIMATE.init(); {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L290 TraceCheckUtils]: 1: Hoare triple {15676#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(15, 2);call #Ultimate.allocInit(12, 3); {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L290 TraceCheckUtils]: 2: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15676#true} {15676#true} #69#return; {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L272 TraceCheckUtils]: 4: Hoare triple {15676#true} call #t~ret8 := main(); {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L290 TraceCheckUtils]: 5: Hoare triple {15676#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {15676#true} is VALID [2022-04-08 11:15:18,376 INFO L272 TraceCheckUtils]: 6: Hoare triple {15676#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 7: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 8: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 9: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15676#true} {15676#true} #61#return; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 11: Hoare triple {15676#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L272 TraceCheckUtils]: 12: Hoare triple {15676#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 13: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 14: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L290 TraceCheckUtils]: 15: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,377 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15676#true} {15676#true} #63#return; {15676#true} is VALID [2022-04-08 11:15:18,378 INFO L290 TraceCheckUtils]: 17: Hoare triple {15676#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:15:18,378 INFO L290 TraceCheckUtils]: 18: Hoare triple {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:15:18,378 INFO L272 TraceCheckUtils]: 19: Hoare triple {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,378 INFO L290 TraceCheckUtils]: 20: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,378 INFO L290 TraceCheckUtils]: 21: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,378 INFO L290 TraceCheckUtils]: 22: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,379 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {15676#true} {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:15:18,379 INFO L290 TraceCheckUtils]: 24: Hoare triple {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:15:18,381 INFO L290 TraceCheckUtils]: 25: Hoare triple {15732#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {15757#(and (= main_~x~0 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:15:18,381 INFO L290 TraceCheckUtils]: 26: Hoare triple {15757#(and (= main_~x~0 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:15:18,382 INFO L290 TraceCheckUtils]: 27: Hoare triple {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:15:18,382 INFO L272 TraceCheckUtils]: 28: Hoare triple {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,382 INFO L290 TraceCheckUtils]: 29: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,382 INFO L290 TraceCheckUtils]: 30: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,382 INFO L290 TraceCheckUtils]: 31: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,382 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {15676#true} {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} #65#return; {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:15:18,383 INFO L290 TraceCheckUtils]: 33: Hoare triple {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume !!(~x~0 <= ~X~0); {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:15:18,384 INFO L290 TraceCheckUtils]: 34: Hoare triple {15761#(and (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= main_~y~0 1) (= main_~v~0 (+ (* main_~X~0 (- 3)) (* main_~Y~0 4))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {15786#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} is VALID [2022-04-08 11:15:18,384 INFO L290 TraceCheckUtils]: 35: Hoare triple {15786#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 1) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} is VALID [2022-04-08 11:15:18,385 INFO L290 TraceCheckUtils]: 36: Hoare triple {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} is VALID [2022-04-08 11:15:18,385 INFO L272 TraceCheckUtils]: 37: Hoare triple {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,385 INFO L290 TraceCheckUtils]: 38: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,385 INFO L290 TraceCheckUtils]: 39: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,385 INFO L290 TraceCheckUtils]: 40: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,391 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {15676#true} {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} #65#return; {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} is VALID [2022-04-08 11:15:18,392 INFO L290 TraceCheckUtils]: 42: Hoare triple {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} assume !!(~x~0 <= ~X~0); {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} is VALID [2022-04-08 11:15:18,393 INFO L290 TraceCheckUtils]: 43: Hoare triple {15790#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= (+ (- 2) main_~x~0) 0) (not (< (* main_~Y~0 2) main_~X~0)) (= (+ (* main_~X~0 (- 3)) (* main_~Y~0 6)) main_~v~0) (= main_~y~0 1))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {15815#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= main_~x~0 2))} is VALID [2022-04-08 11:15:18,394 INFO L290 TraceCheckUtils]: 44: Hoare triple {15815#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= main_~x~0 2))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} is VALID [2022-04-08 11:15:18,394 INFO L290 TraceCheckUtils]: 45: Hoare triple {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} is VALID [2022-04-08 11:15:18,394 INFO L272 TraceCheckUtils]: 46: Hoare triple {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:18,394 INFO L290 TraceCheckUtils]: 47: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:18,394 INFO L290 TraceCheckUtils]: 48: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:18,394 INFO L290 TraceCheckUtils]: 49: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:18,395 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {15676#true} {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} #65#return; {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} is VALID [2022-04-08 11:15:18,395 INFO L290 TraceCheckUtils]: 51: Hoare triple {15819#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} assume !(~x~0 <= ~X~0); {15841#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:15:18,396 INFO L290 TraceCheckUtils]: 52: Hoare triple {15841#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= main_~x~0 3) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (not (<= main_~x~0 main_~X~0)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {15845#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= (* main_~Y~0 3) main_~yx~0) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (= main_~xy~0 (* main_~y~0 3)) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (not (<= 3 main_~X~0)))} is VALID [2022-04-08 11:15:18,397 INFO L272 TraceCheckUtils]: 53: Hoare triple {15845#(and (< (* main_~Y~0 4) (* main_~X~0 3)) (= main_~y~0 2) (= (* main_~Y~0 3) main_~yx~0) (= (* main_~Y~0 8) (+ main_~v~0 (* 5 main_~X~0))) (= main_~xy~0 (* main_~y~0 3)) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (not (<= 3 main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:15:18,398 INFO L290 TraceCheckUtils]: 54: Hoare triple {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {15853#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:15:18,398 INFO L290 TraceCheckUtils]: 55: Hoare triple {15853#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {15677#false} is VALID [2022-04-08 11:15:18,398 INFO L290 TraceCheckUtils]: 56: Hoare triple {15677#false} assume !false; {15677#false} is VALID [2022-04-08 11:15:18,398 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 11:15:18,398 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:15:21,428 INFO L290 TraceCheckUtils]: 56: Hoare triple {15677#false} assume !false; {15677#false} is VALID [2022-04-08 11:15:21,429 INFO L290 TraceCheckUtils]: 55: Hoare triple {15853#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {15677#false} is VALID [2022-04-08 11:15:21,429 INFO L290 TraceCheckUtils]: 54: Hoare triple {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {15853#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:15:21,430 INFO L272 TraceCheckUtils]: 53: Hoare triple {15869#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:15:21,431 INFO L290 TraceCheckUtils]: 52: Hoare triple {15873#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {15869#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:15:21,432 INFO L290 TraceCheckUtils]: 51: Hoare triple {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {15873#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-08 11:15:21,432 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {15676#true} {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:15:21,433 INFO L290 TraceCheckUtils]: 49: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,433 INFO L290 TraceCheckUtils]: 48: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,433 INFO L290 TraceCheckUtils]: 47: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,433 INFO L272 TraceCheckUtils]: 46: Hoare triple {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,433 INFO L290 TraceCheckUtils]: 45: Hoare triple {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:15:21,438 INFO L290 TraceCheckUtils]: 44: Hoare triple {15899#(or (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (<= (+ main_~x~0 1) main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15877#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:15:21,440 INFO L290 TraceCheckUtils]: 43: Hoare triple {15903#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {15899#(or (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-08 11:15:21,441 INFO L290 TraceCheckUtils]: 42: Hoare triple {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} assume !!(~x~0 <= ~X~0); {15903#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:15:21,441 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {15676#true} {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} #65#return; {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:15:21,442 INFO L290 TraceCheckUtils]: 40: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,442 INFO L290 TraceCheckUtils]: 39: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,442 INFO L290 TraceCheckUtils]: 38: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,442 INFO L272 TraceCheckUtils]: 37: Hoare triple {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,442 INFO L290 TraceCheckUtils]: 36: Hoare triple {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:15:21,445 INFO L290 TraceCheckUtils]: 35: Hoare triple {15929#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0) (not (<= (+ main_~x~0 1) main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15907#(or (< main_~v~0 0) (<= (+ main_~x~0 1) main_~X~0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1)))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (<= main_~x~0 main_~X~0)))} is VALID [2022-04-08 11:15:21,446 INFO L290 TraceCheckUtils]: 34: Hoare triple {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {15929#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0) (not (<= (+ main_~x~0 1) main_~X~0)))} is VALID [2022-04-08 11:15:21,446 INFO L290 TraceCheckUtils]: 33: Hoare triple {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} assume !!(~x~0 <= ~X~0); {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} is VALID [2022-04-08 11:15:21,447 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {15676#true} {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} #65#return; {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} is VALID [2022-04-08 11:15:21,447 INFO L290 TraceCheckUtils]: 31: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,447 INFO L290 TraceCheckUtils]: 30: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,447 INFO L290 TraceCheckUtils]: 29: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,447 INFO L272 TraceCheckUtils]: 28: Hoare triple {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,448 INFO L290 TraceCheckUtils]: 27: Hoare triple {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} is VALID [2022-04-08 11:15:21,451 INFO L290 TraceCheckUtils]: 26: Hoare triple {15958#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0) (= (+ main_~v~0 (* (* (+ main_~x~0 3) (+ main_~y~0 1)) 2) (* (- 1) main_~X~0) (* main_~Y~0 4)) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* (* (+ main_~x~0 3) main_~Y~0) 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {15933#(or (= (+ main_~v~0 (* (- 1) main_~X~0) (* (* (+ main_~x~0 2) (+ main_~y~0 1)) 2) (* main_~Y~0 4)) (+ (* 2 (* main_~Y~0 (+ main_~x~0 2))) 2 (* main_~y~0 2) (* main_~Y~0 2))) (<= (+ main_~x~0 2) main_~X~0) (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (not (<= (+ main_~x~0 1) main_~X~0)))} is VALID [2022-04-08 11:15:21,457 INFO L290 TraceCheckUtils]: 25: Hoare triple {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {15958#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0) (= (+ main_~v~0 (* (* (+ main_~x~0 3) (+ main_~y~0 1)) 2) (* (- 1) main_~X~0) (* main_~Y~0 4)) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* (* (+ main_~x~0 3) main_~Y~0) 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} is VALID [2022-04-08 11:15:21,457 INFO L290 TraceCheckUtils]: 24: Hoare triple {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} assume !!(~x~0 <= ~X~0); {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} is VALID [2022-04-08 11:15:21,458 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {15676#true} {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} #65#return; {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} is VALID [2022-04-08 11:15:21,458 INFO L290 TraceCheckUtils]: 22: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,458 INFO L290 TraceCheckUtils]: 21: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,462 INFO L290 TraceCheckUtils]: 20: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,462 INFO L272 TraceCheckUtils]: 19: Hoare triple {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,464 INFO L290 TraceCheckUtils]: 18: Hoare triple {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} is VALID [2022-04-08 11:15:21,465 INFO L290 TraceCheckUtils]: 17: Hoare triple {15676#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {15962#(or (< main_~v~0 0) (< (+ main_~v~0 (* main_~Y~0 4)) (* main_~X~0 2)) (= (+ (* main_~y~0 2) (* main_~Y~0 2) 4 (* (* (+ main_~x~0 3) main_~Y~0) 2)) (+ (* main_~X~0 (- 3)) (* 2 (* (+ main_~x~0 3) (+ main_~y~0 2))) main_~v~0 (* main_~Y~0 6))) (<= (+ main_~x~0 3) main_~X~0) (not (< (+ main_~v~0 (* main_~Y~0 2)) (* main_~X~0 2))) (not (<= (+ main_~x~0 2) main_~X~0)))} is VALID [2022-04-08 11:15:21,465 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15676#true} {15676#true} #63#return; {15676#true} is VALID [2022-04-08 11:15:21,465 INFO L290 TraceCheckUtils]: 15: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 14: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 13: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L272 TraceCheckUtils]: 12: Hoare triple {15676#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 11: Hoare triple {15676#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15676#true} {15676#true} #61#return; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 9: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 8: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 7: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L272 TraceCheckUtils]: 6: Hoare triple {15676#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 5: Hoare triple {15676#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L272 TraceCheckUtils]: 4: Hoare triple {15676#true} call #t~ret8 := main(); {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15676#true} {15676#true} #69#return; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 2: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-08 11:15:21,466 INFO L290 TraceCheckUtils]: 1: Hoare triple {15676#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(15, 2);call #Ultimate.allocInit(12, 3); {15676#true} is VALID [2022-04-08 11:15:21,467 INFO L272 TraceCheckUtils]: 0: Hoare triple {15676#true} call ULTIMATE.init(); {15676#true} is VALID [2022-04-08 11:15:21,467 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-08 11:15:21,467 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:15:21,467 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1502837086] [2022-04-08 11:15:21,467 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:15:21,467 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [38820917] [2022-04-08 11:15:21,467 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [38820917] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:15:21,467 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:15:21,467 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 23 [2022-04-08 11:15:21,468 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:15:21,468 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [18487791] [2022-04-08 11:15:21,468 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [18487791] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:15:21,468 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:15:21,468 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-08 11:15:21,468 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [91118710] [2022-04-08 11:15:21,468 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:15:21,468 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 57 [2022-04-08 11:15:21,468 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:15:21,468 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:15:21,514 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:15:21,515 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-08 11:15:21,515 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:15:21,515 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-08 11:15:21,515 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=100, Invalid=406, Unknown=0, NotChecked=0, Total=506 [2022-04-08 11:15:21,515 INFO L87 Difference]: Start difference. First operand 128 states and 141 transitions. Second operand has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:15:27,666 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:27,667 INFO L93 Difference]: Finished difference Result 141 states and 156 transitions. [2022-04-08 11:15:27,667 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-08 11:15:27,667 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 57 [2022-04-08 11:15:27,667 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:15:27,667 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:15:27,668 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2022-04-08 11:15:27,668 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:15:27,669 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2022-04-08 11:15:27,669 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 64 transitions. [2022-04-08 11:15:27,756 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:15:27,758 INFO L225 Difference]: With dead ends: 141 [2022-04-08 11:15:27,758 INFO L226 Difference]: Without dead ends: 133 [2022-04-08 11:15:27,759 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 115 GetRequests, 90 SyntacticMatches, 2 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 47 ImplicationChecksByTransitivity, 3.2s TimeCoverageRelationStatistics Valid=118, Invalid=482, Unknown=0, NotChecked=0, Total=600 [2022-04-08 11:15:27,759 INFO L913 BasicCegarLoop]: 32 mSDtfsCounter, 8 mSDsluCounter, 202 mSDsCounter, 0 mSdLazyCounter, 392 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 8 SdHoareTripleChecker+Valid, 234 SdHoareTripleChecker+Invalid, 392 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 392 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 2.1s IncrementalHoareTripleChecker+Time [2022-04-08 11:15:27,759 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [8 Valid, 234 Invalid, 392 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 392 Invalid, 0 Unknown, 0 Unchecked, 2.1s Time] [2022-04-08 11:15:27,760 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 133 states. [2022-04-08 11:15:28,071 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 133 to 132. [2022-04-08 11:15:28,071 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:15:28,071 INFO L82 GeneralOperation]: Start isEquivalent. First operand 133 states. Second operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:15:28,072 INFO L74 IsIncluded]: Start isIncluded. First operand 133 states. Second operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:15:28,072 INFO L87 Difference]: Start difference. First operand 133 states. Second operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:15:28,073 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:28,073 INFO L93 Difference]: Finished difference Result 133 states and 148 transitions. [2022-04-08 11:15:28,074 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 148 transitions. [2022-04-08 11:15:28,074 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:15:28,074 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:15:28,074 INFO L74 IsIncluded]: Start isIncluded. First operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) Second operand 133 states. [2022-04-08 11:15:28,074 INFO L87 Difference]: Start difference. First operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) Second operand 133 states. [2022-04-08 11:15:28,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:15:28,076 INFO L93 Difference]: Finished difference Result 133 states and 148 transitions. [2022-04-08 11:15:28,076 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 148 transitions. [2022-04-08 11:15:28,076 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:15:28,076 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:15:28,076 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:15:28,076 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:15:28,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 132 states, 97 states have (on average 1.092783505154639) internal successors, (106), 102 states have internal predecessors, (106), 21 states have call successors, (21), 14 states have call predecessors, (21), 13 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:15:28,078 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 146 transitions. [2022-04-08 11:15:28,078 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 146 transitions. Word has length 57 [2022-04-08 11:15:28,078 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:15:28,078 INFO L478 AbstractCegarLoop]: Abstraction has 132 states and 146 transitions. [2022-04-08 11:15:28,078 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 1 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:15:28,078 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 132 states and 146 transitions. [2022-04-08 11:15:32,574 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 146 edges. 144 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-08 11:15:32,575 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 146 transitions. [2022-04-08 11:15:32,575 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-08 11:15:32,575 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:15:32,575 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:15:32,592 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (21)] Forceful destruction successful, exit code 0 [2022-04-08 11:15:32,779 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 21 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable20 [2022-04-08 11:15:32,779 INFO L403 AbstractCegarLoop]: === Iteration 22 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:15:32,780 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:15:32,780 INFO L85 PathProgramCache]: Analyzing trace with hash -680465044, now seen corresponding path program 5 times [2022-04-08 11:15:32,780 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:15:32,780 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [649374467] [2022-04-08 11:15:32,780 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:15:32,780 INFO L85 PathProgramCache]: Analyzing trace with hash -680465044, now seen corresponding path program 6 times [2022-04-08 11:15:32,780 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:15:32,780 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1887577711] [2022-04-08 11:15:32,780 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:15:32,780 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:15:32,789 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:15:32,789 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1083111620] [2022-04-08 11:15:32,789 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:15:32,789 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:15:32,789 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:15:32,790 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:15:32,790 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (22)] Waiting until timeout for monitored process [2022-04-08 11:15:33,195 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-08 11:15:33,195 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:15:33,196 INFO L263 TraceCheckSpWp]: Trace formula consists of 140 conjuncts, 21 conjunts are in the unsatisfiable core [2022-04-08 11:15:33,213 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:15:33,214 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:15:50,695 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:15:59,751 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:16:05,778 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:16:16,046 WARN L833 $PredicateComparison]: unable to prove that (and (let ((.cse3 (+ c_main_~X~0 1)) (.cse2 (+ (* (- 1) c_main_~Y~0) (div (+ c_main_~v~0 c_main_~X~0) 2) (* c_main_~X~0 c_main_~y~0))) (.cse0 (= c_main_~Y~0 0)) (.cse4 (= (mod (+ (* 2 c_main_~X~0 c_main_~y~0) c_main_~v~0 c_main_~X~0) 2) 0))) (or (let ((.cse1 (div .cse2 c_main_~Y~0))) (and (not .cse0) (not (<= .cse1 c_main_~X~0)) (= (mod .cse2 c_main_~Y~0) 0) (= c_main_~xy~0 (* c_main_~y~0 .cse1)) (<= .cse1 .cse3) (= c_main_~yx~0 (* c_main_~Y~0 .cse1)) .cse4)) (and (let ((.cse6 (= c_main_~y~0 0))) (or (let ((.cse5 (div c_main_~xy~0 c_main_~y~0))) (and (<= .cse5 .cse3) (= (mod c_main_~xy~0 c_main_~y~0) 0) (not .cse6) (< c_main_~X~0 .cse5))) (and .cse6 (= c_main_~xy~0 0)))) (= 0 .cse2) .cse0 (= c_main_~yx~0 0) .cse4))) (<= 0 c_main_~X~0)) is different from false [2022-04-08 11:18:01,418 INFO L272 TraceCheckUtils]: 0: Hoare triple {16856#true} call ULTIMATE.init(); {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 1: Hoare triple {16856#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(15, 2);call #Ultimate.allocInit(12, 3); {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 2: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16856#true} {16856#true} #69#return; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L272 TraceCheckUtils]: 4: Hoare triple {16856#true} call #t~ret8 := main(); {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 5: Hoare triple {16856#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L272 TraceCheckUtils]: 6: Hoare triple {16856#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 7: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 8: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 9: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16856#true} {16856#true} #61#return; {16856#true} is VALID [2022-04-08 11:18:01,419 INFO L290 TraceCheckUtils]: 11: Hoare triple {16856#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L272 TraceCheckUtils]: 12: Hoare triple {16856#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L290 TraceCheckUtils]: 13: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L290 TraceCheckUtils]: 14: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L290 TraceCheckUtils]: 15: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {16856#true} {16856#true} #63#return; {16856#true} is VALID [2022-04-08 11:18:01,420 INFO L290 TraceCheckUtils]: 17: Hoare triple {16856#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {16912#(<= 0 main_~x~0)} is VALID [2022-04-08 11:18:01,420 INFO L290 TraceCheckUtils]: 18: Hoare triple {16912#(<= 0 main_~x~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16912#(<= 0 main_~x~0)} is VALID [2022-04-08 11:18:01,421 INFO L272 TraceCheckUtils]: 19: Hoare triple {16912#(<= 0 main_~x~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,421 INFO L290 TraceCheckUtils]: 20: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:01,421 INFO L290 TraceCheckUtils]: 21: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:01,421 INFO L290 TraceCheckUtils]: 22: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,421 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16856#true} {16912#(<= 0 main_~x~0)} #65#return; {16912#(<= 0 main_~x~0)} is VALID [2022-04-08 11:18:01,423 INFO L290 TraceCheckUtils]: 24: Hoare triple {16912#(<= 0 main_~x~0)} assume !!(~x~0 <= ~X~0); {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,423 INFO L290 TraceCheckUtils]: 25: Hoare triple {16934#(<= 0 main_~X~0)} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,423 INFO L290 TraceCheckUtils]: 26: Hoare triple {16934#(<= 0 main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,424 INFO L290 TraceCheckUtils]: 27: Hoare triple {16934#(<= 0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,424 INFO L272 TraceCheckUtils]: 28: Hoare triple {16934#(<= 0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,424 INFO L290 TraceCheckUtils]: 29: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:01,424 INFO L290 TraceCheckUtils]: 30: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:01,424 INFO L290 TraceCheckUtils]: 31: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,424 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {16856#true} {16934#(<= 0 main_~X~0)} #65#return; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,425 INFO L290 TraceCheckUtils]: 33: Hoare triple {16934#(<= 0 main_~X~0)} assume !!(~x~0 <= ~X~0); {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,425 INFO L290 TraceCheckUtils]: 34: Hoare triple {16934#(<= 0 main_~X~0)} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,425 INFO L290 TraceCheckUtils]: 35: Hoare triple {16934#(<= 0 main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,425 INFO L290 TraceCheckUtils]: 36: Hoare triple {16934#(<= 0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,426 INFO L272 TraceCheckUtils]: 37: Hoare triple {16934#(<= 0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,426 INFO L290 TraceCheckUtils]: 38: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:01,426 INFO L290 TraceCheckUtils]: 39: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:01,426 INFO L290 TraceCheckUtils]: 40: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:01,426 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {16856#true} {16934#(<= 0 main_~X~0)} #65#return; {16934#(<= 0 main_~X~0)} is VALID [2022-04-08 11:18:01,427 INFO L290 TraceCheckUtils]: 42: Hoare triple {16934#(<= 0 main_~X~0)} assume !!(~x~0 <= ~X~0); {16989#(and (<= main_~x~0 main_~X~0) (<= 0 main_~X~0))} is VALID [2022-04-08 11:18:01,427 INFO L290 TraceCheckUtils]: 43: Hoare triple {16989#(and (<= main_~x~0 main_~X~0) (<= 0 main_~X~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {16989#(and (<= main_~x~0 main_~X~0) (<= 0 main_~X~0))} is VALID [2022-04-08 11:18:01,428 INFO L290 TraceCheckUtils]: 44: Hoare triple {16989#(and (<= main_~x~0 main_~X~0) (<= 0 main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {16996#(and (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:18:01,428 INFO L290 TraceCheckUtils]: 45: Hoare triple {16996#(and (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {17000#(and (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:18:01,429 INFO L272 TraceCheckUtils]: 46: Hoare triple {17000#(and (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:01,429 INFO L290 TraceCheckUtils]: 47: Hoare triple {16856#true} ~cond := #in~cond; {17007#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:18:01,429 INFO L290 TraceCheckUtils]: 48: Hoare triple {17007#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:18:01,429 INFO L290 TraceCheckUtils]: 49: Hoare triple {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:18:01,431 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} {17000#(and (<= 0 main_~X~0) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} #65#return; {17018#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:18:01,431 INFO L290 TraceCheckUtils]: 51: Hoare triple {17018#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {17022#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-08 11:18:03,436 WARN L290 TraceCheckUtils]: 52: Hoare triple {17022#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~X~0) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {17026#(and (<= 0 main_~X~0) (or (and (or (and (= (mod main_~xy~0 main_~y~0) 0) (not (= main_~y~0 0)) (<= (div main_~xy~0 main_~y~0) (+ main_~X~0 1)) (< main_~X~0 (div main_~xy~0 main_~y~0))) (and (= main_~xy~0 0) (= main_~y~0 0))) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) (+ main_~X~0 1)) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} is UNKNOWN [2022-04-08 11:18:03,455 INFO L272 TraceCheckUtils]: 53: Hoare triple {17026#(and (<= 0 main_~X~0) (or (and (or (and (= (mod main_~xy~0 main_~y~0) 0) (not (= main_~y~0 0)) (<= (div main_~xy~0 main_~y~0) (+ main_~X~0 1)) (< main_~X~0 (div main_~xy~0 main_~y~0))) (and (= main_~xy~0 0) (= main_~y~0 0))) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0))) (= main_~Y~0 0)) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) (+ main_~X~0 1)) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (<= (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) main_~X~0)) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:18:03,456 INFO L290 TraceCheckUtils]: 54: Hoare triple {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {17034#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:18:03,456 INFO L290 TraceCheckUtils]: 55: Hoare triple {17034#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {16857#false} is VALID [2022-04-08 11:18:03,456 INFO L290 TraceCheckUtils]: 56: Hoare triple {16857#false} assume !false; {16857#false} is VALID [2022-04-08 11:18:03,456 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 26 proven. 10 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-08 11:18:03,456 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:18:21,015 INFO L290 TraceCheckUtils]: 56: Hoare triple {16857#false} assume !false; {16857#false} is VALID [2022-04-08 11:18:21,016 INFO L290 TraceCheckUtils]: 55: Hoare triple {17034#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {16857#false} is VALID [2022-04-08 11:18:21,016 INFO L290 TraceCheckUtils]: 54: Hoare triple {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {17034#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:18:21,017 INFO L272 TraceCheckUtils]: 53: Hoare triple {17050#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:18:21,018 INFO L290 TraceCheckUtils]: 52: Hoare triple {17054#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {17050#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:18:21,019 INFO L290 TraceCheckUtils]: 51: Hoare triple {17058#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {17054#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-08 11:18:21,020 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} {17062#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {17058#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:18:21,020 INFO L290 TraceCheckUtils]: 49: Hoare triple {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:18:21,020 INFO L290 TraceCheckUtils]: 48: Hoare triple {17072#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {17011#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:18:21,021 INFO L290 TraceCheckUtils]: 47: Hoare triple {16856#true} ~cond := #in~cond; {17072#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:18:21,021 INFO L272 TraceCheckUtils]: 46: Hoare triple {17062#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,022 INFO L290 TraceCheckUtils]: 45: Hoare triple {17079#(or (<= main_~x~0 main_~X~0) (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {17062#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:18:21,025 INFO L290 TraceCheckUtils]: 44: Hoare triple {17083#(forall ((v_main_~x~0_80 Int)) (or (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* (* v_main_~x~0_80 main_~y~0) 2)))) (<= v_main_~x~0_80 main_~X~0) (not (<= v_main_~x~0_80 (+ main_~x~0 1)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {17079#(or (<= main_~x~0 main_~X~0) (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))))} is VALID [2022-04-08 11:18:21,026 INFO L290 TraceCheckUtils]: 43: Hoare triple {17083#(forall ((v_main_~x~0_80 Int)) (or (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* (* v_main_~x~0_80 main_~y~0) 2)))) (<= v_main_~x~0_80 main_~X~0) (not (<= v_main_~x~0_80 (+ main_~x~0 1)))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {17083#(forall ((v_main_~x~0_80 Int)) (or (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* (* v_main_~x~0_80 main_~y~0) 2)))) (<= v_main_~x~0_80 main_~X~0) (not (<= v_main_~x~0_80 (+ main_~x~0 1)))))} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 42: Hoare triple {16856#true} assume !!(~x~0 <= ~X~0); {17083#(forall ((v_main_~x~0_80 Int)) (or (forall ((main_~y~0 Int) (main_~Y~0 Int)) (= (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_80 main_~Y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* (* v_main_~x~0_80 main_~y~0) 2)))) (<= v_main_~x~0_80 main_~X~0) (not (<= v_main_~x~0_80 (+ main_~x~0 1)))))} is VALID [2022-04-08 11:18:21,028 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 40: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 39: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 38: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L272 TraceCheckUtils]: 37: Hoare triple {16856#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 36: Hoare triple {16856#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 35: Hoare triple {16856#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 34: Hoare triple {16856#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 33: Hoare triple {16856#true} assume !!(~x~0 <= ~X~0); {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-08 11:18:21,028 INFO L290 TraceCheckUtils]: 31: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 30: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 29: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L272 TraceCheckUtils]: 28: Hoare triple {16856#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 27: Hoare triple {16856#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 26: Hoare triple {16856#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 25: Hoare triple {16856#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 24: Hoare triple {16856#true} assume !!(~x~0 <= ~X~0); {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 22: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 21: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 20: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L272 TraceCheckUtils]: 19: Hoare triple {16856#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 18: Hoare triple {16856#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L290 TraceCheckUtils]: 17: Hoare triple {16856#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {16856#true} is VALID [2022-04-08 11:18:21,029 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {16856#true} {16856#true} #63#return; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 15: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 14: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 13: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L272 TraceCheckUtils]: 12: Hoare triple {16856#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 11: Hoare triple {16856#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16856#true} {16856#true} #61#return; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 9: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 8: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 7: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L272 TraceCheckUtils]: 6: Hoare triple {16856#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 5: Hoare triple {16856#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L272 TraceCheckUtils]: 4: Hoare triple {16856#true} call #t~ret8 := main(); {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16856#true} {16856#true} #69#return; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 2: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-08 11:18:21,030 INFO L290 TraceCheckUtils]: 1: Hoare triple {16856#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(15, 2);call #Ultimate.allocInit(12, 3); {16856#true} is VALID [2022-04-08 11:18:21,031 INFO L272 TraceCheckUtils]: 0: Hoare triple {16856#true} call ULTIMATE.init(); {16856#true} is VALID [2022-04-08 11:18:21,031 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 29 proven. 1 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-08 11:18:21,031 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:18:21,031 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1887577711] [2022-04-08 11:18:21,031 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:18:21,031 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1083111620] [2022-04-08 11:18:21,031 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1083111620] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:18:21,031 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:18:21,031 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 12] total 21 [2022-04-08 11:18:21,032 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:18:21,032 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [649374467] [2022-04-08 11:18:21,032 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [649374467] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:18:21,032 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:18:21,032 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-08 11:18:21,032 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2056077724] [2022-04-08 11:18:21,032 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:18:21,032 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 57 [2022-04-08 11:18:21,032 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:18:21,032 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:18:23,090 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 42 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:18:23,091 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-08 11:18:23,091 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:18:23,091 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-08 11:18:23,091 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=313, Unknown=1, NotChecked=36, Total=420 [2022-04-08 11:18:23,091 INFO L87 Difference]: Start difference. First operand 132 states and 146 transitions. Second operand has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:18:28,800 WARN L833 $PredicateComparison]: unable to prove that (let ((.cse7 (* c_main_~X~0 c_main_~y~0)) (.cse3 (+ c_main_~X~0 1))) (and (let ((.cse2 (+ (* (- 1) c_main_~Y~0) (div (+ c_main_~v~0 c_main_~X~0) 2) .cse7)) (.cse0 (= c_main_~Y~0 0)) (.cse4 (= (mod (+ (* 2 c_main_~X~0 c_main_~y~0) c_main_~v~0 c_main_~X~0) 2) 0))) (or (let ((.cse1 (div .cse2 c_main_~Y~0))) (and (not .cse0) (not (<= .cse1 c_main_~X~0)) (= (mod .cse2 c_main_~Y~0) 0) (= c_main_~xy~0 (* c_main_~y~0 .cse1)) (<= .cse1 .cse3) (= c_main_~yx~0 (* c_main_~Y~0 .cse1)) .cse4)) (and (let ((.cse6 (= c_main_~y~0 0))) (or (let ((.cse5 (div c_main_~xy~0 c_main_~y~0))) (and (<= .cse5 .cse3) (= (mod c_main_~xy~0 c_main_~y~0) 0) (not .cse6) (< c_main_~X~0 .cse5))) (and .cse6 (= c_main_~xy~0 0)))) (= 0 .cse2) .cse0 (= c_main_~yx~0 0) .cse4))) (<= 0 c_main_~X~0) (not (<= c_main_~x~0 c_main_~X~0)) (= (+ (* 2 (* c_main_~Y~0 c_main_~x~0)) (* 2 c_main_~Y~0)) (+ (* 2 .cse7) c_main_~v~0 c_main_~X~0)) (<= c_main_~x~0 .cse3))) is different from false [2022-04-08 11:18:29,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:18:29,171 INFO L93 Difference]: Finished difference Result 139 states and 152 transitions. [2022-04-08 11:18:29,171 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-08 11:18:29,171 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 57 [2022-04-08 11:18:29,172 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:18:29,172 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:18:29,172 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 42 transitions. [2022-04-08 11:18:29,172 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:18:29,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 42 transitions. [2022-04-08 11:18:29,173 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 42 transitions. [2022-04-08 11:18:31,242 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 41 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-08 11:18:31,244 INFO L225 Difference]: With dead ends: 139 [2022-04-08 11:18:31,244 INFO L226 Difference]: Without dead ends: 131 [2022-04-08 11:18:31,244 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 123 GetRequests, 93 SyntacticMatches, 1 SemanticMatches, 29 ConstructedPredicates, 2 IntricatePredicates, 0 DeprecatedPredicates, 142 ImplicationChecksByTransitivity, 7.2s TimeCoverageRelationStatistics Valid=170, Invalid=648, Unknown=2, NotChecked=110, Total=930 [2022-04-08 11:18:31,244 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 21 mSDsluCounter, 147 mSDsCounter, 0 mSdLazyCounter, 146 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 169 SdHoareTripleChecker+Invalid, 177 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 146 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 22 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-04-08 11:18:31,244 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 169 Invalid, 177 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 146 Invalid, 0 Unknown, 22 Unchecked, 0.7s Time] [2022-04-08 11:18:31,245 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 131 states. [2022-04-08 11:18:31,583 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 131 to 126. [2022-04-08 11:18:31,583 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:18:31,584 INFO L82 GeneralOperation]: Start isEquivalent. First operand 131 states. Second operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:18:31,584 INFO L74 IsIncluded]: Start isIncluded. First operand 131 states. Second operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:18:31,584 INFO L87 Difference]: Start difference. First operand 131 states. Second operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:18:31,586 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:18:31,586 INFO L93 Difference]: Finished difference Result 131 states and 144 transitions. [2022-04-08 11:18:31,586 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 144 transitions. [2022-04-08 11:18:31,586 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:18:31,586 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:18:31,586 INFO L74 IsIncluded]: Start isIncluded. First operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) Second operand 131 states. [2022-04-08 11:18:31,586 INFO L87 Difference]: Start difference. First operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) Second operand 131 states. [2022-04-08 11:18:31,588 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:18:31,588 INFO L93 Difference]: Finished difference Result 131 states and 144 transitions. [2022-04-08 11:18:31,588 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 144 transitions. [2022-04-08 11:18:31,588 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:18:31,588 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:18:31,588 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:18:31,588 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:18:31,588 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 126 states, 93 states have (on average 1.086021505376344) internal successors, (101), 97 states have internal predecessors, (101), 19 states have call successors, (19), 14 states have call predecessors, (19), 13 states have return successors, (18), 14 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-08 11:18:31,590 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 126 states to 126 states and 138 transitions. [2022-04-08 11:18:31,590 INFO L78 Accepts]: Start accepts. Automaton has 126 states and 138 transitions. Word has length 57 [2022-04-08 11:18:31,590 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:18:31,590 INFO L478 AbstractCegarLoop]: Abstraction has 126 states and 138 transitions. [2022-04-08 11:18:31,590 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 12 states have (on average 2.4166666666666665) internal successors, (29), 12 states have internal predecessors, (29), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-08 11:18:31,590 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 126 states and 138 transitions. [2022-04-08 11:18:33,565 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 138 edges. 138 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:18:33,565 INFO L276 IsEmpty]: Start isEmpty. Operand 126 states and 138 transitions. [2022-04-08 11:18:33,565 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-08 11:18:33,565 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:18:33,566 INFO L499 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 4, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:18:33,570 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (22)] Forceful destruction successful, exit code 0 [2022-04-08 11:18:33,766 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 22 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable21 [2022-04-08 11:18:33,766 INFO L403 AbstractCegarLoop]: === Iteration 23 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:18:33,767 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:18:33,767 INFO L85 PathProgramCache]: Analyzing trace with hash 1830651545, now seen corresponding path program 7 times [2022-04-08 11:18:33,767 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:18:33,767 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2071577635] [2022-04-08 11:18:33,767 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:18:33,767 INFO L85 PathProgramCache]: Analyzing trace with hash 1830651545, now seen corresponding path program 8 times [2022-04-08 11:18:33,767 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:18:33,768 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [187732409] [2022-04-08 11:18:33,768 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:18:33,768 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:18:33,785 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:18:33,786 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1607404342] [2022-04-08 11:18:33,786 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-08 11:18:33,786 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:18:33,786 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:18:33,787 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:18:33,788 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (23)] Waiting until timeout for monitored process [2022-04-08 11:18:33,834 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-08 11:18:33,835 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:18:33,836 INFO L263 TraceCheckSpWp]: Trace formula consists of 160 conjuncts, 56 conjunts are in the unsatisfiable core [2022-04-08 11:18:33,851 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:18:33,852 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:18:56,661 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:19:00,728 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:19:05,463 INFO L272 TraceCheckUtils]: 0: Hoare triple {18030#true} call ULTIMATE.init(); {18030#true} is VALID [2022-04-08 11:19:05,463 INFO L290 TraceCheckUtils]: 1: Hoare triple {18030#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(15, 2);call #Ultimate.allocInit(12, 3); {18030#true} is VALID [2022-04-08 11:19:05,463 INFO L290 TraceCheckUtils]: 2: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:05,463 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18030#true} {18030#true} #69#return; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L272 TraceCheckUtils]: 4: Hoare triple {18030#true} call #t~ret8 := main(); {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 5: Hoare triple {18030#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L272 TraceCheckUtils]: 6: Hoare triple {18030#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 7: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 8: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 9: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {18030#true} {18030#true} #61#return; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 11: Hoare triple {18030#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L272 TraceCheckUtils]: 12: Hoare triple {18030#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 13: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 14: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L290 TraceCheckUtils]: 15: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:05,464 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {18030#true} {18030#true} #63#return; {18030#true} is VALID [2022-04-08 11:19:05,465 INFO L290 TraceCheckUtils]: 17: Hoare triple {18030#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,465 INFO L290 TraceCheckUtils]: 18: Hoare triple {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,465 INFO L272 TraceCheckUtils]: 19: Hoare triple {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,465 INFO L290 TraceCheckUtils]: 20: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:05,465 INFO L290 TraceCheckUtils]: 21: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:05,466 INFO L290 TraceCheckUtils]: 22: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:05,466 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {18030#true} {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} #65#return; {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,466 INFO L290 TraceCheckUtils]: 24: Hoare triple {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,468 INFO L290 TraceCheckUtils]: 25: Hoare triple {18086#(and (= (+ main_~X~0 main_~v~0) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18111#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:19:05,468 INFO L290 TraceCheckUtils]: 26: Hoare triple {18111#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18111#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:19:05,468 INFO L290 TraceCheckUtils]: 27: Hoare triple {18111#(and (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18118#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:19:05,468 INFO L272 TraceCheckUtils]: 28: Hoare triple {18118#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,469 INFO L290 TraceCheckUtils]: 29: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:05,469 INFO L290 TraceCheckUtils]: 30: Hoare triple {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,469 INFO L290 TraceCheckUtils]: 31: Hoare triple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,471 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} {18118#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} #65#return; {18136#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:19:05,472 INFO L290 TraceCheckUtils]: 33: Hoare triple {18136#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume !!(~x~0 <= ~X~0); {18136#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} is VALID [2022-04-08 11:19:05,473 INFO L290 TraceCheckUtils]: 34: Hoare triple {18136#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0) (= (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (* main_~Y~0 2)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18143#(and (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-08 11:19:05,475 INFO L290 TraceCheckUtils]: 35: Hoare triple {18143#(and (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,475 INFO L290 TraceCheckUtils]: 36: Hoare triple {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18151#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:19:05,475 INFO L272 TraceCheckUtils]: 37: Hoare triple {18151#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,476 INFO L290 TraceCheckUtils]: 38: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:05,476 INFO L290 TraceCheckUtils]: 39: Hoare triple {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,476 INFO L290 TraceCheckUtils]: 40: Hoare triple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,477 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} {18151#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,478 INFO L290 TraceCheckUtils]: 42: Hoare triple {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,479 INFO L290 TraceCheckUtils]: 43: Hoare triple {18147#(and (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* (- 2) main_~Y~0)) (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)))) (= (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18173#(and (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,481 INFO L290 TraceCheckUtils]: 44: Hoare triple {18173#(and (= (+ (* main_~Y~0 2) (* 2 (* (+ (- 1) main_~x~0) main_~Y~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,481 INFO L290 TraceCheckUtils]: 45: Hoare triple {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18181#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:19:05,481 INFO L272 TraceCheckUtils]: 46: Hoare triple {18181#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:05,481 INFO L290 TraceCheckUtils]: 47: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:05,482 INFO L290 TraceCheckUtils]: 48: Hoare triple {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,482 INFO L290 TraceCheckUtils]: 49: Hoare triple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:05,483 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} {18181#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,483 INFO L290 TraceCheckUtils]: 51: Hoare triple {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,484 INFO L290 TraceCheckUtils]: 52: Hoare triple {18177#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 (+ (- 2) main_~x~0)))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~Y~0 2) (+ main_~X~0 main_~v~0 (* main_~Y~0 (- 6)))) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18203#(and (= (* main_~Y~0 2) (+ (* main_~Y~0 main_~x~0 2) (* main_~Y~0 (- 4)) (* (- 2) main_~X~0 main_~y~0))) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,487 INFO L290 TraceCheckUtils]: 53: Hoare triple {18203#(and (= (* main_~Y~0 2) (+ (* main_~Y~0 main_~x~0 2) (* main_~Y~0 (- 4)) (* (- 2) main_~X~0 main_~y~0))) (= main_~v~0 (+ (* main_~Y~0 main_~x~0 2) (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18207#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= (* main_~Y~0 2) (+ (* main_~Y~0 (- 4)) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:05,492 INFO L290 TraceCheckUtils]: 54: Hoare triple {18207#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* (- 2) main_~X~0 main_~y~0) (* main_~Y~0 4) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= (* main_~Y~0 2) (+ (* main_~Y~0 (- 4)) (* (- 2) main_~X~0 main_~y~0) (* (+ (- 1) main_~x~0) main_~Y~0 2))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18211#(and (= main_~xy~0 0) (or (and (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= main_~Y~0 (div (+ (* (- 1) main_~X~0) (* (- 1) main_~v~0)) (- 2))) (= main_~yx~0 0) (= main_~Y~0 0)) (and (= (+ (* (+ (div main_~yx~0 main_~Y~0) (- 1)) main_~Y~0 2) (* (- 1) main_~X~0) (* main_~Y~0 4)) main_~v~0) (= (+ (* (+ (div main_~yx~0 main_~Y~0) (- 1)) main_~Y~0 2) (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0)))))} is VALID [2022-04-08 11:19:05,496 INFO L272 TraceCheckUtils]: 55: Hoare triple {18211#(and (= main_~xy~0 0) (or (and (= (mod (+ main_~X~0 main_~v~0) 2) 0) (= main_~Y~0 (div (+ (* (- 1) main_~X~0) (* (- 1) main_~v~0)) (- 2))) (= main_~yx~0 0) (= main_~Y~0 0)) (and (= (+ (* (+ (div main_~yx~0 main_~Y~0) (- 1)) main_~Y~0 2) (* (- 1) main_~X~0) (* main_~Y~0 4)) main_~v~0) (= (+ (* (+ (div main_~yx~0 main_~Y~0) (- 1)) main_~Y~0 2) (* main_~Y~0 (- 4))) (* main_~Y~0 2)) (= (mod main_~yx~0 main_~Y~0) 0) (not (= main_~Y~0 0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:19:05,496 INFO L290 TraceCheckUtils]: 56: Hoare triple {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {18219#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:05,497 INFO L290 TraceCheckUtils]: 57: Hoare triple {18219#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {18031#false} is VALID [2022-04-08 11:19:05,497 INFO L290 TraceCheckUtils]: 58: Hoare triple {18031#false} assume !false; {18031#false} is VALID [2022-04-08 11:19:05,497 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 14 proven. 41 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2022-04-08 11:19:05,497 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:19:10,747 INFO L290 TraceCheckUtils]: 58: Hoare triple {18031#false} assume !false; {18031#false} is VALID [2022-04-08 11:19:10,748 INFO L290 TraceCheckUtils]: 57: Hoare triple {18219#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {18031#false} is VALID [2022-04-08 11:19:10,748 INFO L290 TraceCheckUtils]: 56: Hoare triple {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {18219#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:10,749 INFO L272 TraceCheckUtils]: 55: Hoare triple {18235#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:19:10,750 INFO L290 TraceCheckUtils]: 54: Hoare triple {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18235#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:19:10,772 INFO L290 TraceCheckUtils]: 53: Hoare triple {18243#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:19:10,773 INFO L290 TraceCheckUtils]: 52: Hoare triple {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18243#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:19:10,774 INFO L290 TraceCheckUtils]: 51: Hoare triple {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:19:10,774 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} {18253#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {18239#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:19:10,775 INFO L290 TraceCheckUtils]: 49: Hoare triple {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:10,775 INFO L290 TraceCheckUtils]: 48: Hoare triple {18263#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {18129#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:10,775 INFO L290 TraceCheckUtils]: 47: Hoare triple {18030#true} ~cond := #in~cond; {18263#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:19:10,775 INFO L272 TraceCheckUtils]: 46: Hoare triple {18253#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 45: Hoare triple {18030#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18253#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 44: Hoare triple {18030#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 43: Hoare triple {18030#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 42: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 40: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 39: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 38: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L272 TraceCheckUtils]: 37: Hoare triple {18030#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,777 INFO L290 TraceCheckUtils]: 36: Hoare triple {18030#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 35: Hoare triple {18030#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 34: Hoare triple {18030#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 33: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 31: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 30: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 29: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L272 TraceCheckUtils]: 28: Hoare triple {18030#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 27: Hoare triple {18030#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 26: Hoare triple {18030#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 25: Hoare triple {18030#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 24: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 22: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,778 INFO L290 TraceCheckUtils]: 21: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 20: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L272 TraceCheckUtils]: 19: Hoare triple {18030#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 18: Hoare triple {18030#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 17: Hoare triple {18030#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {18030#true} {18030#true} #63#return; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 15: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 14: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 13: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L272 TraceCheckUtils]: 12: Hoare triple {18030#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 11: Hoare triple {18030#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {18030#true} {18030#true} #61#return; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 9: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 8: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-08 11:19:10,779 INFO L290 TraceCheckUtils]: 7: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L272 TraceCheckUtils]: 6: Hoare triple {18030#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L290 TraceCheckUtils]: 5: Hoare triple {18030#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L272 TraceCheckUtils]: 4: Hoare triple {18030#true} call #t~ret8 := main(); {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18030#true} {18030#true} #69#return; {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L290 TraceCheckUtils]: 2: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L290 TraceCheckUtils]: 1: Hoare triple {18030#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(15, 2);call #Ultimate.allocInit(12, 3); {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L272 TraceCheckUtils]: 0: Hoare triple {18030#true} call ULTIMATE.init(); {18030#true} is VALID [2022-04-08 11:19:10,780 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 35 proven. 2 refuted. 0 times theorem prover too weak. 37 trivial. 0 not checked. [2022-04-08 11:19:10,780 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:19:10,780 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [187732409] [2022-04-08 11:19:10,780 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:19:10,781 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1607404342] [2022-04-08 11:19:10,781 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1607404342] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:19:10,781 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:19:10,781 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 10] total 24 [2022-04-08 11:19:10,781 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:19:10,782 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2071577635] [2022-04-08 11:19:10,782 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2071577635] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:19:10,782 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:19:10,782 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [19] imperfect sequences [] total 19 [2022-04-08 11:19:10,782 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [958035037] [2022-04-08 11:19:10,782 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:19:10,783 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 59 [2022-04-08 11:19:10,783 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:19:10,783 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:19:10,848 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:19:10,848 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-04-08 11:19:10,848 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:19:10,849 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-04-08 11:19:10,849 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=478, Unknown=1, NotChecked=0, Total=552 [2022-04-08 11:19:10,849 INFO L87 Difference]: Start difference. First operand 126 states and 138 transitions. Second operand has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:19:18,173 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-08 11:19:24,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:19:24,367 INFO L93 Difference]: Finished difference Result 143 states and 156 transitions. [2022-04-08 11:19:24,367 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-04-08 11:19:24,367 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 59 [2022-04-08 11:19:24,367 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:19:24,367 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:19:24,368 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 66 transitions. [2022-04-08 11:19:24,368 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:19:24,368 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 66 transitions. [2022-04-08 11:19:24,369 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 19 states and 66 transitions. [2022-04-08 11:19:24,478 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:19:24,480 INFO L225 Difference]: With dead ends: 143 [2022-04-08 11:19:24,480 INFO L226 Difference]: Without dead ends: 141 [2022-04-08 11:19:24,481 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 91 SyntacticMatches, 4 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 119 ImplicationChecksByTransitivity, 6.0s TimeCoverageRelationStatistics Valid=101, Invalid=654, Unknown=1, NotChecked=0, Total=756 [2022-04-08 11:19:24,481 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 20 mSDsluCounter, 181 mSDsCounter, 0 mSdLazyCounter, 511 mSolverCounterSat, 8 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 5.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 206 SdHoareTripleChecker+Invalid, 520 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 511 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 5.4s IncrementalHoareTripleChecker+Time [2022-04-08 11:19:24,481 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 206 Invalid, 520 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 511 Invalid, 1 Unknown, 0 Unchecked, 5.4s Time] [2022-04-08 11:19:24,481 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 141 states. [2022-04-08 11:19:24,872 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 141 to 139. [2022-04-08 11:19:24,873 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:19:24,873 INFO L82 GeneralOperation]: Start isEquivalent. First operand 141 states. Second operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:19:24,873 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:19:24,873 INFO L87 Difference]: Start difference. First operand 141 states. Second operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:19:24,875 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:19:24,875 INFO L93 Difference]: Finished difference Result 141 states and 154 transitions. [2022-04-08 11:19:24,875 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 154 transitions. [2022-04-08 11:19:24,875 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:19:24,875 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:19:24,875 INFO L74 IsIncluded]: Start isIncluded. First operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) Second operand 141 states. [2022-04-08 11:19:24,876 INFO L87 Difference]: Start difference. First operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) Second operand 141 states. [2022-04-08 11:19:24,877 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:19:24,877 INFO L93 Difference]: Finished difference Result 141 states and 154 transitions. [2022-04-08 11:19:24,877 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 154 transitions. [2022-04-08 11:19:24,877 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:19:24,877 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:19:24,878 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:19:24,878 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:19:24,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 139 states, 103 states have (on average 1.087378640776699) internal successors, (112), 107 states have internal predecessors, (112), 20 states have call successors, (20), 16 states have call predecessors, (20), 15 states have return successors, (19), 15 states have call predecessors, (19), 19 states have call successors, (19) [2022-04-08 11:19:24,879 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 139 states to 139 states and 151 transitions. [2022-04-08 11:19:24,879 INFO L78 Accepts]: Start accepts. Automaton has 139 states and 151 transitions. Word has length 59 [2022-04-08 11:19:24,880 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:19:24,880 INFO L478 AbstractCegarLoop]: Abstraction has 139 states and 151 transitions. [2022-04-08 11:19:24,880 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 19 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 18 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:19:24,880 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 139 states and 151 transitions. [2022-04-08 11:19:26,132 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 151 edges. 151 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:19:26,132 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 151 transitions. [2022-04-08 11:19:26,132 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-08 11:19:26,132 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:19:26,132 INFO L499 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:19:26,151 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (23)] Forceful destruction successful, exit code 0 [2022-04-08 11:19:26,333 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable22,23 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:19:26,333 INFO L403 AbstractCegarLoop]: === Iteration 24 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:19:26,333 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:19:26,333 INFO L85 PathProgramCache]: Analyzing trace with hash -689308389, now seen corresponding path program 15 times [2022-04-08 11:19:26,333 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:19:26,333 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1485651876] [2022-04-08 11:19:26,334 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:19:26,334 INFO L85 PathProgramCache]: Analyzing trace with hash -689308389, now seen corresponding path program 16 times [2022-04-08 11:19:26,334 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:19:26,334 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2129604043] [2022-04-08 11:19:26,334 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:19:26,335 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:19:26,348 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:19:26,348 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [424473762] [2022-04-08 11:19:26,348 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-08 11:19:26,349 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:19:26,349 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:19:26,349 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:19:26,350 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (24)] Waiting until timeout for monitored process [2022-04-08 11:19:26,392 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-08 11:19:26,392 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:19:26,393 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-08 11:19:26,408 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:19:26,410 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:19:51,359 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-08 11:19:58,129 INFO L272 TraceCheckUtils]: 0: Hoare triple {19261#true} call ULTIMATE.init(); {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L290 TraceCheckUtils]: 1: Hoare triple {19261#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(15, 2);call #Ultimate.allocInit(12, 3); {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L290 TraceCheckUtils]: 2: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {19261#true} {19261#true} #69#return; {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L272 TraceCheckUtils]: 4: Hoare triple {19261#true} call #t~ret8 := main(); {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L290 TraceCheckUtils]: 5: Hoare triple {19261#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {19261#true} is VALID [2022-04-08 11:19:58,129 INFO L272 TraceCheckUtils]: 6: Hoare triple {19261#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 7: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 8: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 9: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {19261#true} {19261#true} #61#return; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 11: Hoare triple {19261#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L272 TraceCheckUtils]: 12: Hoare triple {19261#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 13: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 14: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L290 TraceCheckUtils]: 15: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:19:58,130 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {19261#true} {19261#true} #63#return; {19261#true} is VALID [2022-04-08 11:19:58,131 INFO L290 TraceCheckUtils]: 17: Hoare triple {19261#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,131 INFO L290 TraceCheckUtils]: 18: Hoare triple {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,131 INFO L272 TraceCheckUtils]: 19: Hoare triple {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,131 INFO L290 TraceCheckUtils]: 20: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:19:58,131 INFO L290 TraceCheckUtils]: 21: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:19:58,131 INFO L290 TraceCheckUtils]: 22: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:19:58,132 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {19261#true} {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,132 INFO L290 TraceCheckUtils]: 24: Hoare triple {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,134 INFO L290 TraceCheckUtils]: 25: Hoare triple {19317#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19342#(and (= main_~x~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,134 INFO L290 TraceCheckUtils]: 26: Hoare triple {19342#(and (= main_~x~0 0) (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,134 INFO L290 TraceCheckUtils]: 27: Hoare triple {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19350#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,135 INFO L272 TraceCheckUtils]: 28: Hoare triple {19350#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,135 INFO L290 TraceCheckUtils]: 29: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:58,135 INFO L290 TraceCheckUtils]: 30: Hoare triple {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,135 INFO L290 TraceCheckUtils]: 31: Hoare triple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,136 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} {19350#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0))} #65#return; {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,136 INFO L290 TraceCheckUtils]: 33: Hoare triple {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,137 INFO L290 TraceCheckUtils]: 34: Hoare triple {19346#(and (= main_~v~0 (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~x~0 1) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19374#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,138 INFO L290 TraceCheckUtils]: 35: Hoare triple {19374#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,138 INFO L290 TraceCheckUtils]: 36: Hoare triple {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,138 INFO L272 TraceCheckUtils]: 37: Hoare triple {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,138 INFO L290 TraceCheckUtils]: 38: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:58,139 INFO L290 TraceCheckUtils]: 39: Hoare triple {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,139 INFO L290 TraceCheckUtils]: 40: Hoare triple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,140 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} #65#return; {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,140 INFO L290 TraceCheckUtils]: 42: Hoare triple {19378#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} assume !!(~x~0 <= ~X~0); {19400#(and (= (+ (- 1) main_~x~0) 1) (<= main_~x~0 main_~X~0) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,141 INFO L290 TraceCheckUtils]: 43: Hoare triple {19400#(and (= (+ (- 1) main_~x~0) 1) (<= main_~x~0 main_~X~0) (= main_~y~0 0) (= (+ main_~v~0 (* (- 2) main_~Y~0)) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19404#(and (= (+ (- 1) main_~x~0) 1) (<= main_~x~0 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,141 INFO L290 TraceCheckUtils]: 44: Hoare triple {19404#(and (= (+ (- 1) main_~x~0) 1) (<= main_~x~0 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19408#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (<= main_~x~0 3) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,142 INFO L290 TraceCheckUtils]: 45: Hoare triple {19408#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (<= main_~x~0 3) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19412#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (<= main_~x~0 3) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:19:58,142 INFO L272 TraceCheckUtils]: 46: Hoare triple {19412#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (<= main_~x~0 3) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:19:58,142 INFO L290 TraceCheckUtils]: 47: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:58,142 INFO L290 TraceCheckUtils]: 48: Hoare triple {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,142 INFO L290 TraceCheckUtils]: 49: Hoare triple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:19:58,144 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} {19412#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (<= main_~x~0 3) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {19428#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 3) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,145 INFO L290 TraceCheckUtils]: 51: Hoare triple {19428#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 3) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {19428#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 3) (= main_~y~0 0))} is VALID [2022-04-08 11:19:58,146 INFO L290 TraceCheckUtils]: 52: Hoare triple {19428#(and (<= 2 main_~X~0) (= (+ main_~v~0 (* main_~Y~0 (- 4))) (+ (* (- 1) main_~X~0) (* main_~Y~0 4))) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 3) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {19435#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (= main_~y~0 1) (<= 2 main_~X~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= (+ (* main_~Y~0 4) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)))} is VALID [2022-04-08 11:19:58,148 INFO L290 TraceCheckUtils]: 53: Hoare triple {19435#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (= main_~y~0 1) (<= 2 main_~X~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= (+ (* main_~Y~0 4) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19439#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (= main_~y~0 1) (<= 2 main_~X~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)) (* main_~Y~0 4))))} is VALID [2022-04-08 11:19:58,151 INFO L290 TraceCheckUtils]: 54: Hoare triple {19439#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (= main_~y~0 1) (<= 2 main_~X~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* 2 (* (+ (- 1) main_~x~0) main_~Y~0)) (* main_~Y~0 4))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19443#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (<= 2 main_~X~0) (= (* (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0) main_~yx~0) (= main_~X~0 main_~xy~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} is VALID [2022-04-08 11:19:58,154 INFO L272 TraceCheckUtils]: 55: Hoare triple {19443#(and (= (+ main_~v~0 (* main_~X~0 3)) (* main_~Y~0 10)) (<= 2 main_~X~0) (= (* (div (+ (div (+ (* main_~X~0 (- 3)) (* (- 1) main_~v~0)) (- 2)) (* (- 1) main_~Y~0)) main_~Y~0) main_~Y~0) main_~yx~0) (= main_~X~0 main_~xy~0) (<= (* main_~Y~0 2) (+ main_~v~0 (* main_~X~0 2))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:19:58,154 INFO L290 TraceCheckUtils]: 56: Hoare triple {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {19451#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:19:58,155 INFO L290 TraceCheckUtils]: 57: Hoare triple {19451#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {19262#false} is VALID [2022-04-08 11:19:58,155 INFO L290 TraceCheckUtils]: 58: Hoare triple {19262#false} assume !false; {19262#false} is VALID [2022-04-08 11:19:58,155 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 14 proven. 41 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2022-04-08 11:19:58,155 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:20:01,953 INFO L290 TraceCheckUtils]: 58: Hoare triple {19262#false} assume !false; {19262#false} is VALID [2022-04-08 11:20:01,953 INFO L290 TraceCheckUtils]: 57: Hoare triple {19451#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {19262#false} is VALID [2022-04-08 11:20:01,953 INFO L290 TraceCheckUtils]: 56: Hoare triple {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {19451#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:20:01,954 INFO L272 TraceCheckUtils]: 55: Hoare triple {19467#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:20:01,955 INFO L290 TraceCheckUtils]: 54: Hoare triple {19471#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19467#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:20:01,959 INFO L290 TraceCheckUtils]: 53: Hoare triple {19475#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19471#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:20:01,961 INFO L290 TraceCheckUtils]: 52: Hoare triple {19479#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {19475#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:20:01,961 INFO L290 TraceCheckUtils]: 51: Hoare triple {19479#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} assume !!(~x~0 <= ~X~0); {19479#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:20:01,962 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} {19486#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {19479#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))))} is VALID [2022-04-08 11:20:01,962 INFO L290 TraceCheckUtils]: 49: Hoare triple {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:01,963 INFO L290 TraceCheckUtils]: 48: Hoare triple {19496#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {19361#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:01,963 INFO L290 TraceCheckUtils]: 47: Hoare triple {19261#true} ~cond := #in~cond; {19496#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:20:01,963 INFO L272 TraceCheckUtils]: 46: Hoare triple {19486#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,964 INFO L290 TraceCheckUtils]: 45: Hoare triple {19261#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19486#(or (< main_~v~0 0) (= (+ main_~v~0 (* (- 1) main_~X~0) (* main_~Y~0 2) (* (* main_~X~0 (+ main_~y~0 1)) 2)) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)))) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 44: Hoare triple {19261#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 43: Hoare triple {19261#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 42: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 40: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 39: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 38: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L272 TraceCheckUtils]: 37: Hoare triple {19261#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 36: Hoare triple {19261#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 35: Hoare triple {19261#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 34: Hoare triple {19261#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L290 TraceCheckUtils]: 33: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-08 11:20:01,965 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 31: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 30: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 29: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L272 TraceCheckUtils]: 28: Hoare triple {19261#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 27: Hoare triple {19261#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 26: Hoare triple {19261#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 25: Hoare triple {19261#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 24: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 22: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 21: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 20: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L272 TraceCheckUtils]: 19: Hoare triple {19261#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 18: Hoare triple {19261#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {19261#true} is VALID [2022-04-08 11:20:01,966 INFO L290 TraceCheckUtils]: 17: Hoare triple {19261#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {19261#true} {19261#true} #63#return; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 15: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 14: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 13: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L272 TraceCheckUtils]: 12: Hoare triple {19261#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 11: Hoare triple {19261#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {19261#true} {19261#true} #61#return; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 9: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 8: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 7: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L272 TraceCheckUtils]: 6: Hoare triple {19261#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L290 TraceCheckUtils]: 5: Hoare triple {19261#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L272 TraceCheckUtils]: 4: Hoare triple {19261#true} call #t~ret8 := main(); {19261#true} is VALID [2022-04-08 11:20:01,967 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {19261#true} {19261#true} #69#return; {19261#true} is VALID [2022-04-08 11:20:01,968 INFO L290 TraceCheckUtils]: 2: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-08 11:20:01,968 INFO L290 TraceCheckUtils]: 1: Hoare triple {19261#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(15, 2);call #Ultimate.allocInit(12, 3); {19261#true} is VALID [2022-04-08 11:20:01,968 INFO L272 TraceCheckUtils]: 0: Hoare triple {19261#true} call ULTIMATE.init(); {19261#true} is VALID [2022-04-08 11:20:01,968 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 35 proven. 2 refuted. 0 times theorem prover too weak. 37 trivial. 0 not checked. [2022-04-08 11:20:01,968 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:20:01,968 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2129604043] [2022-04-08 11:20:01,968 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:20:01,968 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [424473762] [2022-04-08 11:20:01,968 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [424473762] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:20:01,968 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:20:01,968 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 11] total 26 [2022-04-08 11:20:01,969 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:20:01,969 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1485651876] [2022-04-08 11:20:01,969 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1485651876] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:20:01,969 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:20:01,969 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [20] imperfect sequences [] total 20 [2022-04-08 11:20:01,969 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1982010538] [2022-04-08 11:20:01,969 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:20:01,970 INFO L78 Accepts]: Start accepts. Automaton has has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 59 [2022-04-08 11:20:01,971 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:20:01,971 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:02,030 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:20:02,030 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 20 states [2022-04-08 11:20:02,030 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:20:02,031 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2022-04-08 11:20:02,031 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=88, Invalid=562, Unknown=0, NotChecked=0, Total=650 [2022-04-08 11:20:02,031 INFO L87 Difference]: Start difference. First operand 139 states and 151 transitions. Second operand has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:12,475 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:20:12,475 INFO L93 Difference]: Finished difference Result 150 states and 162 transitions. [2022-04-08 11:20:12,475 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-04-08 11:20:12,475 INFO L78 Accepts]: Start accepts. Automaton has has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 59 [2022-04-08 11:20:12,475 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-08 11:20:12,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:12,476 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 65 transitions. [2022-04-08 11:20:12,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:12,477 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 65 transitions. [2022-04-08 11:20:12,477 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 19 states and 65 transitions. [2022-04-08 11:20:12,579 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:20:12,580 INFO L225 Difference]: With dead ends: 150 [2022-04-08 11:20:12,581 INFO L226 Difference]: Without dead ends: 148 [2022-04-08 11:20:12,581 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 90 SyntacticMatches, 3 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 124 ImplicationChecksByTransitivity, 4.0s TimeCoverageRelationStatistics Valid=118, Invalid=752, Unknown=0, NotChecked=0, Total=870 [2022-04-08 11:20:12,581 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 19 mSDsluCounter, 233 mSDsCounter, 0 mSdLazyCounter, 661 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 3.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 20 SdHoareTripleChecker+Valid, 257 SdHoareTripleChecker+Invalid, 669 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 661 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 3.8s IncrementalHoareTripleChecker+Time [2022-04-08 11:20:12,581 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [20 Valid, 257 Invalid, 669 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 661 Invalid, 0 Unknown, 0 Unchecked, 3.8s Time] [2022-04-08 11:20:12,582 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 148 states. [2022-04-08 11:20:12,969 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 148 to 146. [2022-04-08 11:20:12,970 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-08 11:20:12,970 INFO L82 GeneralOperation]: Start isEquivalent. First operand 148 states. Second operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) [2022-04-08 11:20:12,970 INFO L74 IsIncluded]: Start isIncluded. First operand 148 states. Second operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) [2022-04-08 11:20:12,970 INFO L87 Difference]: Start difference. First operand 148 states. Second operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) [2022-04-08 11:20:12,972 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:20:12,972 INFO L93 Difference]: Finished difference Result 148 states and 160 transitions. [2022-04-08 11:20:12,972 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 160 transitions. [2022-04-08 11:20:12,972 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:20:12,972 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:20:12,973 INFO L74 IsIncluded]: Start isIncluded. First operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) Second operand 148 states. [2022-04-08 11:20:12,973 INFO L87 Difference]: Start difference. First operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) Second operand 148 states. [2022-04-08 11:20:12,974 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-08 11:20:12,974 INFO L93 Difference]: Finished difference Result 148 states and 160 transitions. [2022-04-08 11:20:12,974 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 160 transitions. [2022-04-08 11:20:12,975 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-08 11:20:12,975 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-08 11:20:12,975 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-08 11:20:12,975 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-08 11:20:12,975 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 146 states, 108 states have (on average 1.0833333333333333) internal successors, (117), 113 states have internal predecessors, (117), 21 states have call successors, (21), 17 states have call predecessors, (21), 16 states have return successors, (20), 15 states have call predecessors, (20), 20 states have call successors, (20) [2022-04-08 11:20:12,977 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 158 transitions. [2022-04-08 11:20:12,977 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 158 transitions. Word has length 59 [2022-04-08 11:20:12,977 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-08 11:20:12,977 INFO L478 AbstractCegarLoop]: Abstraction has 146 states and 158 transitions. [2022-04-08 11:20:12,977 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 20 states, 17 states have (on average 2.0) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:12,977 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 146 states and 158 transitions. [2022-04-08 11:20:15,496 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 158 edges. 158 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:20:15,497 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 158 transitions. [2022-04-08 11:20:15,497 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-08 11:20:15,497 INFO L491 BasicCegarLoop]: Found error trace [2022-04-08 11:20:15,497 INFO L499 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-08 11:20:15,513 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (24)] Forceful destruction successful, exit code 0 [2022-04-08 11:20:15,707 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable23,24 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:20:15,707 INFO L403 AbstractCegarLoop]: === Iteration 25 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-08 11:20:15,708 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-08 11:20:15,708 INFO L85 PathProgramCache]: Analyzing trace with hash 809583191, now seen corresponding path program 17 times [2022-04-08 11:20:15,708 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-08 11:20:15,708 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [810464168] [2022-04-08 11:20:15,708 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-08 11:20:15,708 INFO L85 PathProgramCache]: Analyzing trace with hash 809583191, now seen corresponding path program 18 times [2022-04-08 11:20:15,708 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-08 11:20:15,708 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1742563881] [2022-04-08 11:20:15,708 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-08 11:20:15,708 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-08 11:20:15,717 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-08 11:20:15,717 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [583330904] [2022-04-08 11:20:15,717 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-08 11:20:15,717 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-08 11:20:15,718 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-08 11:20:15,718 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-08 11:20:15,719 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (25)] Waiting until timeout for monitored process [2022-04-08 11:20:15,767 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) [2022-04-08 11:20:15,767 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-08 11:20:15,768 INFO L263 TraceCheckSpWp]: Trace formula consists of 162 conjuncts, 51 conjunts are in the unsatisfiable core [2022-04-08 11:20:15,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-08 11:20:15,781 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-08 11:20:18,275 INFO L272 TraceCheckUtils]: 0: Hoare triple {20536#true} call ULTIMATE.init(); {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L290 TraceCheckUtils]: 1: Hoare triple {20536#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(15, 2);call #Ultimate.allocInit(12, 3); {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L290 TraceCheckUtils]: 2: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {20536#true} {20536#true} #69#return; {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L272 TraceCheckUtils]: 4: Hoare triple {20536#true} call #t~ret8 := main(); {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L290 TraceCheckUtils]: 5: Hoare triple {20536#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {20536#true} is VALID [2022-04-08 11:20:18,275 INFO L272 TraceCheckUtils]: 6: Hoare triple {20536#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 7: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 8: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 9: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {20536#true} {20536#true} #61#return; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 11: Hoare triple {20536#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L272 TraceCheckUtils]: 12: Hoare triple {20536#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 13: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 14: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L290 TraceCheckUtils]: 15: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:18,276 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {20536#true} {20536#true} #63#return; {20536#true} is VALID [2022-04-08 11:20:18,277 INFO L290 TraceCheckUtils]: 17: Hoare triple {20536#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,277 INFO L290 TraceCheckUtils]: 18: Hoare triple {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,277 INFO L272 TraceCheckUtils]: 19: Hoare triple {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,277 INFO L290 TraceCheckUtils]: 20: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:18,277 INFO L290 TraceCheckUtils]: 21: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:18,277 INFO L290 TraceCheckUtils]: 22: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:18,278 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {20536#true} {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,278 INFO L290 TraceCheckUtils]: 24: Hoare triple {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,280 INFO L290 TraceCheckUtils]: 25: Hoare triple {20592#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20617#(and (= main_~x~0 0) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:20:18,280 INFO L290 TraceCheckUtils]: 26: Hoare triple {20617#(and (= main_~x~0 0) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:20:18,280 INFO L290 TraceCheckUtils]: 27: Hoare triple {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:20:18,280 INFO L272 TraceCheckUtils]: 28: Hoare triple {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,281 INFO L290 TraceCheckUtils]: 29: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:18,281 INFO L290 TraceCheckUtils]: 30: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:18,281 INFO L290 TraceCheckUtils]: 31: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:18,281 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {20536#true} {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} #65#return; {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:20:18,282 INFO L290 TraceCheckUtils]: 33: Hoare triple {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} assume !!(~x~0 <= ~X~0); {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-08 11:20:18,283 INFO L290 TraceCheckUtils]: 34: Hoare triple {20621#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20646#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~x~0 1) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,283 INFO L290 TraceCheckUtils]: 35: Hoare triple {20646#(and (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~x~0 1) (= main_~y~0 0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,283 INFO L290 TraceCheckUtils]: 36: Hoare triple {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20654#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:20:18,283 INFO L272 TraceCheckUtils]: 37: Hoare triple {20654#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,284 INFO L290 TraceCheckUtils]: 38: Hoare triple {20536#true} ~cond := #in~cond; {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:20:18,284 INFO L290 TraceCheckUtils]: 39: Hoare triple {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:18,284 INFO L290 TraceCheckUtils]: 40: Hoare triple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:18,285 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} {20654#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,285 INFO L290 TraceCheckUtils]: 42: Hoare triple {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} is VALID [2022-04-08 11:20:18,286 INFO L290 TraceCheckUtils]: 43: Hoare triple {20650#(and (= (+ (- 1) main_~x~0) 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 4)))) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {20678#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,287 INFO L290 TraceCheckUtils]: 44: Hoare triple {20678#(and (= (+ (- 1) main_~x~0) 1) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,287 INFO L290 TraceCheckUtils]: 45: Hoare triple {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20686#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-08 11:20:18,287 INFO L272 TraceCheckUtils]: 46: Hoare triple {20686#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:18,288 INFO L290 TraceCheckUtils]: 47: Hoare triple {20536#true} ~cond := #in~cond; {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:20:18,288 INFO L290 TraceCheckUtils]: 48: Hoare triple {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:18,288 INFO L290 TraceCheckUtils]: 49: Hoare triple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:18,289 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} {20686#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,289 INFO L290 TraceCheckUtils]: 51: Hoare triple {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} assume !!(~x~0 <= ~X~0); {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,290 INFO L290 TraceCheckUtils]: 52: Hoare triple {20682#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 6)) (* main_~X~0 2))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20708#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,290 INFO L290 TraceCheckUtils]: 53: Hoare triple {20708#(and (= main_~x~0 3) (= main_~y~0 1) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20712#(and (= main_~y~0 1) (= (+ (- 1) main_~x~0) 3) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,291 INFO L290 TraceCheckUtils]: 54: Hoare triple {20712#(and (= main_~y~0 1) (= (+ (- 1) main_~x~0) 3) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20716#(and (= main_~yx~0 (* main_~Y~0 4)) (= main_~X~0 main_~xy~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} is VALID [2022-04-08 11:20:18,292 INFO L272 TraceCheckUtils]: 55: Hoare triple {20716#(and (= main_~yx~0 (* main_~Y~0 4)) (= main_~X~0 main_~xy~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* main_~Y~0 (- 8)) (* main_~X~0 2))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:20:18,293 INFO L290 TraceCheckUtils]: 56: Hoare triple {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {20724#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:20:18,293 INFO L290 TraceCheckUtils]: 57: Hoare triple {20724#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {20537#false} is VALID [2022-04-08 11:20:18,293 INFO L290 TraceCheckUtils]: 58: Hoare triple {20537#false} assume !false; {20537#false} is VALID [2022-04-08 11:20:18,293 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 18 proven. 40 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-08 11:20:18,293 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-08 11:20:22,389 INFO L290 TraceCheckUtils]: 58: Hoare triple {20537#false} assume !false; {20537#false} is VALID [2022-04-08 11:20:22,390 INFO L290 TraceCheckUtils]: 57: Hoare triple {20724#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {20537#false} is VALID [2022-04-08 11:20:22,390 INFO L290 TraceCheckUtils]: 56: Hoare triple {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {20724#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-08 11:20:22,391 INFO L272 TraceCheckUtils]: 55: Hoare triple {20740#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-08 11:20:22,393 INFO L290 TraceCheckUtils]: 54: Hoare triple {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20740#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-08 11:20:22,397 INFO L290 TraceCheckUtils]: 53: Hoare triple {20748#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:20:22,398 INFO L290 TraceCheckUtils]: 52: Hoare triple {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20748#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-08 11:20:22,399 INFO L290 TraceCheckUtils]: 51: Hoare triple {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:20:22,400 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} {20758#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} #65#return; {20744#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-08 11:20:22,400 INFO L290 TraceCheckUtils]: 49: Hoare triple {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:22,400 INFO L290 TraceCheckUtils]: 48: Hoare triple {20768#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {20665#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-08 11:20:22,401 INFO L290 TraceCheckUtils]: 47: Hoare triple {20536#true} ~cond := #in~cond; {20768#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-08 11:20:22,401 INFO L272 TraceCheckUtils]: 46: Hoare triple {20758#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,402 INFO L290 TraceCheckUtils]: 45: Hoare triple {20536#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20758#(or (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))))} is VALID [2022-04-08 11:20:22,402 INFO L290 TraceCheckUtils]: 44: Hoare triple {20536#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 43: Hoare triple {20536#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 42: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 40: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 39: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 38: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L272 TraceCheckUtils]: 37: Hoare triple {20536#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 36: Hoare triple {20536#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 35: Hoare triple {20536#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 34: Hoare triple {20536#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20536#true} is VALID [2022-04-08 11:20:22,403 INFO L290 TraceCheckUtils]: 33: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 31: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 30: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 29: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L272 TraceCheckUtils]: 28: Hoare triple {20536#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 27: Hoare triple {20536#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 26: Hoare triple {20536#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 25: Hoare triple {20536#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 24: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-08 11:20:22,404 INFO L290 TraceCheckUtils]: 22: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 21: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 20: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L272 TraceCheckUtils]: 19: Hoare triple {20536#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 18: Hoare triple {20536#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 17: Hoare triple {20536#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {20536#true} {20536#true} #63#return; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 15: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 14: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 13: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L272 TraceCheckUtils]: 12: Hoare triple {20536#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,405 INFO L290 TraceCheckUtils]: 11: Hoare triple {20536#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {20536#true} {20536#true} #61#return; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 9: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 8: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 7: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L272 TraceCheckUtils]: 6: Hoare triple {20536#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 5: Hoare triple {20536#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L272 TraceCheckUtils]: 4: Hoare triple {20536#true} call #t~ret8 := main(); {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {20536#true} {20536#true} #69#return; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 2: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L290 TraceCheckUtils]: 1: Hoare triple {20536#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(15, 2);call #Ultimate.allocInit(12, 3); {20536#true} is VALID [2022-04-08 11:20:22,406 INFO L272 TraceCheckUtils]: 0: Hoare triple {20536#true} call ULTIMATE.init(); {20536#true} is VALID [2022-04-08 11:20:22,407 INFO L134 CoverageAnalysis]: Checked inductivity of 74 backedges. 35 proven. 2 refuted. 0 times theorem prover too weak. 37 trivial. 0 not checked. [2022-04-08 11:20:22,407 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-08 11:20:22,407 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1742563881] [2022-04-08 11:20:22,407 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-08 11:20:22,407 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [583330904] [2022-04-08 11:20:22,407 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [583330904] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-08 11:20:22,407 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-08 11:20:22,408 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 10] total 23 [2022-04-08 11:20:22,408 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-08 11:20:22,408 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [810464168] [2022-04-08 11:20:22,408 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [810464168] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-08 11:20:22,408 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-08 11:20:22,408 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [18] imperfect sequences [] total 18 [2022-04-08 11:20:22,408 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1420855441] [2022-04-08 11:20:22,408 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-08 11:20:22,409 INFO L78 Accepts]: Start accepts. Automaton has has 18 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 17 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) Word has length 59 [2022-04-08 11:20:22,409 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-08 11:20:22,409 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 18 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 17 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-08 11:20:22,479 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-08 11:20:22,480 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 18 states [2022-04-08 11:20:22,480 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-08 11:20:22,480 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2022-04-08 11:20:22,480 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=435, Unknown=0, NotChecked=0, Total=506 [2022-04-08 11:20:22,480 INFO L87 Difference]: Start difference. First operand 146 states and 158 transitions. Second operand has 18 states, 15 states have (on average 2.2666666666666666) internal successors, (34), 17 states have internal predecessors, (34), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 5 states have call successors, (7)