/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata ./data --core.log.level.for.class de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf -i ../../../trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-fb4f59a-m [2022-04-28 04:37:45,698 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-28 04:37:45,707 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-28 04:37:45,763 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-28 04:37:45,764 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-28 04:37:45,765 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-28 04:37:45,767 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-28 04:37:45,769 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-28 04:37:45,770 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-28 04:37:45,773 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-28 04:37:45,773 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-28 04:37:45,774 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-28 04:37:45,775 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-28 04:37:45,776 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-28 04:37:45,777 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-28 04:37:45,779 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-28 04:37:45,779 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-28 04:37:45,779 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-28 04:37:45,781 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-28 04:37:45,784 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-28 04:37:45,786 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-28 04:37:45,786 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-28 04:37:45,787 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-28 04:37:45,787 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-28 04:37:45,788 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-28 04:37:45,792 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-28 04:37:45,792 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-28 04:37:45,792 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-28 04:37:45,792 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-28 04:37:45,793 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-28 04:37:45,793 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-28 04:37:45,794 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-28 04:37:45,795 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-28 04:37:45,795 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-28 04:37:45,795 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-28 04:37:45,796 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-28 04:37:45,796 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-28 04:37:45,796 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-28 04:37:45,797 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-28 04:37:45,797 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-28 04:37:45,797 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-28 04:37:45,798 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-28 04:37:45,799 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf [2022-04-28 04:37:45,807 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-28 04:37:45,807 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-28 04:37:45,808 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-28 04:37:45,808 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-28 04:37:45,809 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-28 04:37:45,809 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 04:37:45,810 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=JORDAN [2022-04-28 04:37:45,810 INFO L138 SettingsManager]: * Use separate solver for trace checks=false WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-28 04:37:45,980 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-28 04:37:45,997 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-28 04:37:45,999 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-28 04:37:46,000 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-28 04:37:46,001 INFO L275 PluginConnector]: CDTParser initialized [2022-04-28 04:37:46,002 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-28 04:37:46,042 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f4732d21f/c9b61b4fe1b04c2392923a2d58cb70bf/FLAG68325a0ff [2022-04-28 04:37:46,404 INFO L306 CDTParser]: Found 1 translation units. [2022-04-28 04:37:46,405 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c [2022-04-28 04:37:46,411 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f4732d21f/c9b61b4fe1b04c2392923a2d58cb70bf/FLAG68325a0ff [2022-04-28 04:37:46,420 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/f4732d21f/c9b61b4fe1b04c2392923a2d58cb70bf [2022-04-28 04:37:46,422 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-28 04:37:46,423 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-28 04:37:46,425 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-28 04:37:46,426 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-28 04:37:46,428 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-28 04:37:46,429 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,430 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@23b31635 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46, skipping insertion in model container [2022-04-28 04:37:46,430 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,434 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-28 04:37:46,444 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-28 04:37:46,585 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-28 04:37:46,617 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 04:37:46,622 INFO L203 MainTranslator]: Completed pre-run [2022-04-28 04:37:46,633 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-28 04:37:46,654 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-28 04:37:46,662 INFO L208 MainTranslator]: Completed translation [2022-04-28 04:37:46,662 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46 WrapperNode [2022-04-28 04:37:46,662 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-28 04:37:46,664 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-28 04:37:46,664 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-28 04:37:46,664 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-28 04:37:46,671 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,671 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,676 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,676 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,687 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,691 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,694 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,696 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-28 04:37:46,697 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-28 04:37:46,697 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-28 04:37:46,697 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-28 04:37:46,698 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (1/1) ... [2022-04-28 04:37:46,702 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-28 04:37:46,708 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:37:46,717 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-28 04:37:46,719 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-28 04:37:46,742 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-28 04:37:46,742 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-28 04:37:46,743 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-28 04:37:46,743 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-28 04:37:46,743 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-28 04:37:46,743 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-28 04:37:46,743 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-28 04:37:46,743 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-28 04:37:46,744 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-28 04:37:46,744 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-28 04:37:46,744 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-28 04:37:46,744 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-28 04:37:46,745 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-28 04:37:46,786 INFO L234 CfgBuilder]: Building ICFG [2022-04-28 04:37:46,787 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-28 04:37:46,978 INFO L275 CfgBuilder]: Performing block encoding [2022-04-28 04:37:46,983 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-28 04:37:46,983 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-28 04:37:46,984 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 04:37:46 BoogieIcfgContainer [2022-04-28 04:37:46,984 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-28 04:37:46,985 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-28 04:37:46,985 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-28 04:37:47,000 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-28 04:37:47,001 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 28.04 04:37:46" (1/3) ... [2022-04-28 04:37:47,001 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@582dba56 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 04:37:47, skipping insertion in model container [2022-04-28 04:37:47,001 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 28.04 04:37:46" (2/3) ... [2022-04-28 04:37:47,002 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@582dba56 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.04 04:37:47, skipping insertion in model container [2022-04-28 04:37:47,002 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.04 04:37:46" (3/3) ... [2022-04-28 04:37:47,002 INFO L111 eAbstractionObserver]: Analyzing ICFG bresenham-ll_valuebound20.c [2022-04-28 04:37:47,012 INFO L201 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-28 04:37:47,012 INFO L160 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-28 04:37:47,052 INFO L356 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-28 04:37:47,057 INFO L357 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=Craig_NestedInterpolation, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=FINITE_AUTOMATA, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=All, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mPorIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@748ff67f, mLbeIndependenceSettings=de.uni_freiburg.informatik.ultimate.lib.tracecheckerutils.partialorder.independence.IndependenceSettings@20e6217f [2022-04-28 04:37:47,058 INFO L358 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-28 04:37:47,064 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-28 04:37:47,069 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-28 04:37:47,069 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:37:47,070 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:37:47,070 INFO L420 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:37:47,075 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:37:47,075 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 1 times [2022-04-28 04:37:47,080 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:47,081 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1244421662] [2022-04-28 04:37:47,090 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:37:47,091 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 2 times [2022-04-28 04:37:47,093 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:37:47,093 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [828027636] [2022-04-28 04:37:47,093 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:37:47,094 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:37:47,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:47,252 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-28 04:37:47,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:47,275 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-28 04:37:47,275 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-28 04:37:47,275 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-28 04:37:47,276 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-28 04:37:47,279 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:47,290 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-28 04:37:47,291 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-28 04:37:47,292 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-28 04:37:47,292 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-28 04:37:47,292 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-28 04:37:47,302 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:47,309 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-28 04:37:47,310 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-28 04:37:47,310 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-28 04:37:47,310 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-28 04:37:47,311 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-28 04:37:47,311 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-28 04:37:47,311 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-28 04:37:47,312 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-28 04:37:47,312 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret8 := main(); {35#true} is VALID [2022-04-28 04:37:47,312 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-28 04:37:47,312 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-28 04:37:47,312 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-28 04:37:47,312 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-28 04:37:47,313 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-28 04:37:47,313 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-28 04:37:47,313 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-28 04:37:47,313 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-28 04:37:47,313 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-28 04:37:47,314 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-28 04:37:47,314 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-28 04:37:47,314 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-28 04:37:47,314 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-28 04:37:47,314 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-28 04:37:47,314 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-28 04:37:47,314 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-28 04:37:47,315 INFO L290 TraceCheckUtils]: 21: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-28 04:37:47,315 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-28 04:37:47,315 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-28 04:37:47,315 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:37:47,315 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [828027636] [2022-04-28 04:37:47,316 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [828027636] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:47,316 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:47,316 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-28 04:37:47,319 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:37:47,319 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1244421662] [2022-04-28 04:37:47,319 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1244421662] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:47,319 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:47,319 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-28 04:37:47,319 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1057424980] [2022-04-28 04:37:47,320 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:37:47,323 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-28 04:37:47,324 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:37:47,327 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-28 04:37:47,357 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-28 04:37:47,358 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-28 04:37:47,358 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:47,373 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-28 04:37:47,374 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-28 04:37:47,377 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-28 04:37:47,504 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:47,504 INFO L93 Difference]: Finished difference Result 57 states and 74 transitions. [2022-04-28 04:37:47,504 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-28 04:37:47,505 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-28 04:37:47,505 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:37:47,506 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-28 04:37:47,514 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-28 04:37:47,514 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-28 04:37:47,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-28 04:37:47,524 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2022-04-28 04:37:47,598 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:37:47,605 INFO L225 Difference]: With dead ends: 57 [2022-04-28 04:37:47,605 INFO L226 Difference]: Without dead ends: 27 [2022-04-28 04:37:47,607 INFO L412 NwaCegarLoop]: 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-28 04:37:47,610 INFO L413 NwaCegarLoop]: 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-28 04:37:47,611 INFO L414 NwaCegarLoop]: 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-28 04:37:47,621 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-28 04:37:47,632 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-28 04:37:47,633 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:37:47,636 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-28 04:37:47,636 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-28 04:37:47,642 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-28 04:37:47,646 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:47,646 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-28 04:37:47,646 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-28 04:37:47,647 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:47,647 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:47,647 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-28 04:37:47,648 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-28 04:37:47,650 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:47,650 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-28 04:37:47,650 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-28 04:37:47,650 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:47,650 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:47,650 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:37:47,650 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:37:47,651 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-28 04:37:47,652 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 30 transitions. [2022-04-28 04:37:47,653 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 30 transitions. Word has length 23 [2022-04-28 04:37:47,653 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:37:47,653 INFO L495 AbstractCegarLoop]: Abstraction has 27 states and 30 transitions. [2022-04-28 04:37:47,653 INFO L496 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-28 04:37:47,653 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 27 states and 30 transitions. [2022-04-28 04:37:47,688 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-28 04:37:47,689 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-28 04:37:47,689 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-28 04:37:47,690 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:37:47,690 INFO L195 NwaCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-28 04:37:47,690 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-28 04:37:47,690 INFO L420 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:37:47,691 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:37:47,691 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 1 times [2022-04-28 04:37:47,691 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:47,692 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1089102801] [2022-04-28 04:37:47,692 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:37:47,693 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 2 times [2022-04-28 04:37:47,693 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:37:47,693 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [212254106] [2022-04-28 04:37:47,693 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:37:47,693 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:37:47,718 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:37:47,719 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [634939762] [2022-04-28 04:37:47,719 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:37:47,719 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:37:47,719 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:37:47,721 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:37:47,722 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-28 04:37:47,775 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2022-04-28 04:37:47,775 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:37:47,777 INFO L263 TraceCheckSpWp]: Trace formula consists of 71 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-28 04:37:47,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:47,794 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:37:47,962 INFO L272 TraceCheckUtils]: 0: Hoare triple {273#true} call ULTIMATE.init(); {273#true} is VALID [2022-04-28 04:37:47,962 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-28 04:37:47,962 INFO L290 TraceCheckUtils]: 2: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-28 04:37:47,963 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {273#true} {273#true} #69#return; {273#true} is VALID [2022-04-28 04:37:47,963 INFO L272 TraceCheckUtils]: 4: Hoare triple {273#true} call #t~ret8 := main(); {273#true} is VALID [2022-04-28 04:37:47,963 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-28 04:37:47,963 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-28 04:37:47,963 INFO L290 TraceCheckUtils]: 7: Hoare triple {273#true} ~cond := #in~cond; {273#true} is VALID [2022-04-28 04:37:47,963 INFO L290 TraceCheckUtils]: 8: Hoare triple {273#true} assume !(0 == ~cond); {273#true} is VALID [2022-04-28 04:37:47,964 INFO L290 TraceCheckUtils]: 9: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-28 04:37:47,964 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {273#true} {273#true} #61#return; {273#true} is VALID [2022-04-28 04:37:47,964 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-28 04:37:47,965 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-28 04:37:47,965 INFO L290 TraceCheckUtils]: 13: Hoare triple {273#true} ~cond := #in~cond; {273#true} is VALID [2022-04-28 04:37:47,967 INFO L290 TraceCheckUtils]: 14: Hoare triple {273#true} assume !(0 == ~cond); {273#true} is VALID [2022-04-28 04:37:47,967 INFO L290 TraceCheckUtils]: 15: Hoare triple {273#true} assume true; {273#true} is VALID [2022-04-28 04:37:47,968 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {273#true} {273#true} #63#return; {273#true} is VALID [2022-04-28 04:37:47,969 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-28 04:37:47,970 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-28 04:37:47,971 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-28 04:37:47,971 INFO L290 TraceCheckUtils]: 20: Hoare triple {337#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {341#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:37:47,973 INFO L290 TraceCheckUtils]: 21: Hoare triple {341#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {274#false} is VALID [2022-04-28 04:37:47,973 INFO L290 TraceCheckUtils]: 22: Hoare triple {274#false} assume !false; {274#false} is VALID [2022-04-28 04:37:47,973 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-28 04:37:47,974 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-28 04:37:47,974 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:37:47,974 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [212254106] [2022-04-28 04:37:47,974 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:37:47,974 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [634939762] [2022-04-28 04:37:47,975 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [634939762] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:47,975 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:47,975 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-28 04:37:47,976 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:37:47,976 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1089102801] [2022-04-28 04:37:47,976 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1089102801] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:47,976 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:47,977 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-28 04:37:47,977 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [534321138] [2022-04-28 04:37:47,977 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:37:47,978 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-28 04:37:47,979 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:37:47,979 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-28 04:37:47,994 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-28 04:37:47,995 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-28 04:37:47,995 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:47,996 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-28 04:37:47,997 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-28 04:37:47,997 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-28 04:37:48,176 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:48,176 INFO L93 Difference]: Finished difference Result 39 states and 44 transitions. [2022-04-28 04:37:48,176 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-28 04:37:48,176 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-28 04:37:48,177 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:37:48,177 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-28 04:37:48,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-28 04:37:48,178 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-28 04:37:48,179 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-28 04:37:48,179 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2022-04-28 04:37:48,223 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-28 04:37:48,224 INFO L225 Difference]: With dead ends: 39 [2022-04-28 04:37:48,224 INFO L226 Difference]: Without dead ends: 35 [2022-04-28 04:37:48,225 INFO L412 NwaCegarLoop]: 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-28 04:37:48,225 INFO L413 NwaCegarLoop]: 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-28 04:37:48,226 INFO L414 NwaCegarLoop]: 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-28 04:37:48,226 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-04-28 04:37:48,234 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 34. [2022-04-28 04:37:48,234 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:37:48,235 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-28 04:37:48,235 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-28 04:37:48,235 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-28 04:37:48,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:48,237 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-28 04:37:48,237 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-28 04:37:48,237 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:48,237 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:48,238 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-28 04:37:48,238 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-28 04:37:48,239 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:48,240 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-28 04:37:48,240 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-28 04:37:48,240 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:48,240 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:48,240 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:37:48,240 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:37:48,240 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-28 04:37:48,241 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 37 transitions. [2022-04-28 04:37:48,242 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 37 transitions. Word has length 23 [2022-04-28 04:37:48,242 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:37:48,242 INFO L495 AbstractCegarLoop]: Abstraction has 34 states and 37 transitions. [2022-04-28 04:37:48,242 INFO L496 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-28 04:37:48,242 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 34 states and 37 transitions. [2022-04-28 04:37:48,270 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-28 04:37:48,270 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 37 transitions. [2022-04-28 04:37:48,271 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-28 04:37:48,271 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:37:48,271 INFO L195 NwaCegarLoop]: 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-28 04:37:48,289 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-04-28 04:37:48,487 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:37:48,488 INFO L420 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:37:48,488 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:37:48,488 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 1 times [2022-04-28 04:37:48,488 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:48,488 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1123102064] [2022-04-28 04:37:48,489 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:37:48,489 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 2 times [2022-04-28 04:37:48,489 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:37:48,489 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [841050677] [2022-04-28 04:37:48,489 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:37:48,489 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:37:48,506 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:37:48,507 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [245977072] [2022-04-28 04:37:48,507 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:37:48,507 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:37:48,507 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:37:48,508 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:37:48,509 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-28 04:37:48,548 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:37:48,548 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:37:48,549 INFO L263 TraceCheckSpWp]: Trace formula consists of 103 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-28 04:37:48,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:48,561 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:37:48,895 INFO L272 TraceCheckUtils]: 0: Hoare triple {567#true} call ULTIMATE.init(); {567#true} is VALID [2022-04-28 04:37:48,895 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-28 04:37:48,895 INFO L290 TraceCheckUtils]: 2: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:48,895 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {567#true} {567#true} #69#return; {567#true} is VALID [2022-04-28 04:37:48,895 INFO L272 TraceCheckUtils]: 4: Hoare triple {567#true} call #t~ret8 := main(); {567#true} is VALID [2022-04-28 04:37:48,896 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-28 04:37:48,896 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-28 04:37:48,896 INFO L290 TraceCheckUtils]: 7: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-28 04:37:48,896 INFO L290 TraceCheckUtils]: 8: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-28 04:37:48,896 INFO L290 TraceCheckUtils]: 9: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:48,896 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {567#true} {567#true} #61#return; {567#true} is VALID [2022-04-28 04:37:48,896 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-28 04:37:48,896 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-28 04:37:48,897 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-28 04:37:48,897 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-28 04:37:48,897 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-28 04:37:48,898 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-28 04:37:48,898 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-28 04:37:48,899 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-28 04:37:48,899 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-28 04:37:48,899 INFO L290 TraceCheckUtils]: 20: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-28 04:37:48,899 INFO L290 TraceCheckUtils]: 21: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-28 04:37:48,899 INFO L290 TraceCheckUtils]: 22: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:48,900 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-28 04:37:48,900 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-28 04:37:48,901 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-28 04:37:48,902 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-28 04:37:48,902 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-28 04:37:48,903 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-28 04:37:48,903 INFO L290 TraceCheckUtils]: 29: Hoare triple {663#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {667#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:37:48,904 INFO L290 TraceCheckUtils]: 30: Hoare triple {667#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {568#false} is VALID [2022-04-28 04:37:48,904 INFO L290 TraceCheckUtils]: 31: Hoare triple {568#false} assume !false; {568#false} is VALID [2022-04-28 04:37:48,904 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-28 04:37:48,904 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:37:49,108 INFO L290 TraceCheckUtils]: 31: Hoare triple {568#false} assume !false; {568#false} is VALID [2022-04-28 04:37:49,109 INFO L290 TraceCheckUtils]: 30: Hoare triple {667#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {568#false} is VALID [2022-04-28 04:37:49,109 INFO L290 TraceCheckUtils]: 29: Hoare triple {663#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {667#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:37:49,111 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-28 04:37:49,111 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-28 04:37:49,114 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-28 04:37:49,115 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-28 04:37:49,115 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-28 04:37:49,116 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-28 04:37:49,116 INFO L290 TraceCheckUtils]: 22: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:49,116 INFO L290 TraceCheckUtils]: 21: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-28 04:37:49,116 INFO L290 TraceCheckUtils]: 20: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-28 04:37:49,118 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-28 04:37:49,120 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-28 04:37:49,120 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-28 04:37:49,121 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {567#true} {567#true} #63#return; {567#true} is VALID [2022-04-28 04:37:49,121 INFO L290 TraceCheckUtils]: 15: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:49,121 INFO L290 TraceCheckUtils]: 14: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-28 04:37:49,121 INFO L290 TraceCheckUtils]: 13: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-28 04:37:49,121 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-28 04:37:49,121 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-28 04:37:49,121 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {567#true} {567#true} #61#return; {567#true} is VALID [2022-04-28 04:37:49,121 INFO L290 TraceCheckUtils]: 9: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:49,122 INFO L290 TraceCheckUtils]: 8: Hoare triple {567#true} assume !(0 == ~cond); {567#true} is VALID [2022-04-28 04:37:49,122 INFO L290 TraceCheckUtils]: 7: Hoare triple {567#true} ~cond := #in~cond; {567#true} is VALID [2022-04-28 04:37:49,123 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-28 04:37:49,123 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-28 04:37:49,123 INFO L272 TraceCheckUtils]: 4: Hoare triple {567#true} call #t~ret8 := main(); {567#true} is VALID [2022-04-28 04:37:49,124 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {567#true} {567#true} #69#return; {567#true} is VALID [2022-04-28 04:37:49,124 INFO L290 TraceCheckUtils]: 2: Hoare triple {567#true} assume true; {567#true} is VALID [2022-04-28 04:37:49,130 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-28 04:37:49,130 INFO L272 TraceCheckUtils]: 0: Hoare triple {567#true} call ULTIMATE.init(); {567#true} is VALID [2022-04-28 04:37:49,131 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-28 04:37:49,131 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:37:49,131 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [841050677] [2022-04-28 04:37:49,131 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:37:49,131 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [245977072] [2022-04-28 04:37:49,131 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [245977072] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:37:49,131 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:37:49,131 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 7] total 14 [2022-04-28 04:37:49,132 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:37:49,132 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1123102064] [2022-04-28 04:37:49,132 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1123102064] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:49,132 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:49,132 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-28 04:37:49,132 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [982641728] [2022-04-28 04:37:49,132 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:37:49,132 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-28 04:37:49,133 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:37:49,133 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-28 04:37:49,155 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-28 04:37:49,155 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-28 04:37:49,155 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:49,155 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-28 04:37:49,156 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=149, Unknown=0, NotChecked=0, Total=182 [2022-04-28 04:37:49,156 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-28 04:37:49,635 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:49,635 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2022-04-28 04:37:49,635 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-28 04:37:49,635 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-28 04:37:49,636 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:37:49,636 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-28 04:37:49,640 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 51 transitions. [2022-04-28 04:37:49,642 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-28 04:37:49,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 51 transitions. [2022-04-28 04:37:49,644 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 51 transitions. [2022-04-28 04:37:49,683 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:37:49,686 INFO L225 Difference]: With dead ends: 48 [2022-04-28 04:37:49,686 INFO L226 Difference]: Without dead ends: 44 [2022-04-28 04:37:49,687 INFO L412 NwaCegarLoop]: 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-28 04:37:49,695 INFO L413 NwaCegarLoop]: 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-28 04:37:49,695 INFO L414 NwaCegarLoop]: 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-28 04:37:49,696 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2022-04-28 04:37:49,728 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 43. [2022-04-28 04:37:49,728 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:37:49,728 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-28 04:37:49,728 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-28 04:37:49,728 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-28 04:37:49,736 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:49,736 INFO L93 Difference]: Finished difference Result 44 states and 49 transitions. [2022-04-28 04:37:49,736 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-28 04:37:49,740 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:49,740 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:49,741 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-28 04:37:49,742 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-28 04:37:49,744 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:49,745 INFO L93 Difference]: Finished difference Result 44 states and 49 transitions. [2022-04-28 04:37:49,745 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-28 04:37:49,745 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:49,745 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:49,745 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:37:49,745 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:37:49,745 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-28 04:37:49,747 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2022-04-28 04:37:49,747 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 32 [2022-04-28 04:37:49,747 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:37:49,747 INFO L495 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2022-04-28 04:37:49,747 INFO L496 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-28 04:37:49,747 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 43 states and 47 transitions. [2022-04-28 04:37:49,786 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-28 04:37:49,786 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2022-04-28 04:37:49,787 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-28 04:37:49,787 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:37:49,787 INFO L195 NwaCegarLoop]: 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-28 04:37:49,816 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-04-28 04:37:50,003 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-28 04:37:50,003 INFO L420 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:37:50,003 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:37:50,003 INFO L85 PathProgramCache]: Analyzing trace with hash 355715891, now seen corresponding path program 1 times [2022-04-28 04:37:50,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:50,004 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1911334737] [2022-04-28 04:37:50,004 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:37:50,004 INFO L85 PathProgramCache]: Analyzing trace with hash 355715891, now seen corresponding path program 2 times [2022-04-28 04:37:50,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:37:50,004 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [685849086] [2022-04-28 04:37:50,004 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:37:50,004 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:37:50,015 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:37:50,015 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1743081540] [2022-04-28 04:37:50,015 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:37:50,015 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:37:50,015 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:37:50,016 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:37:50,017 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-28 04:37:50,048 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:37:50,048 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:37:50,049 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-28 04:37:50,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:50,057 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:37:50,234 INFO L272 TraceCheckUtils]: 0: Hoare triple {1048#true} call ULTIMATE.init(); {1048#true} is VALID [2022-04-28 04:37:50,234 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-28 04:37:50,234 INFO L290 TraceCheckUtils]: 2: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,234 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1048#true} {1048#true} #69#return; {1048#true} is VALID [2022-04-28 04:37:50,234 INFO L272 TraceCheckUtils]: 4: Hoare triple {1048#true} call #t~ret8 := main(); {1048#true} is VALID [2022-04-28 04:37:50,234 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-28 04:37:50,234 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-28 04:37:50,234 INFO L290 TraceCheckUtils]: 7: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,234 INFO L290 TraceCheckUtils]: 8: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,235 INFO L290 TraceCheckUtils]: 9: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,235 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1048#true} {1048#true} #61#return; {1048#true} is VALID [2022-04-28 04:37:50,235 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-28 04:37:50,235 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-28 04:37:50,235 INFO L290 TraceCheckUtils]: 13: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,235 INFO L290 TraceCheckUtils]: 14: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,235 INFO L290 TraceCheckUtils]: 15: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,235 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1048#true} {1048#true} #63#return; {1048#true} is VALID [2022-04-28 04:37:50,236 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-28 04:37:50,236 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-28 04:37:50,236 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-28 04:37:50,236 INFO L290 TraceCheckUtils]: 20: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,236 INFO L290 TraceCheckUtils]: 21: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,236 INFO L290 TraceCheckUtils]: 22: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,237 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-28 04:37:50,238 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-28 04:37:50,238 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-28 04:37:50,239 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-28 04:37:50,239 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-28 04:37:50,240 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-28 04:37:50,241 INFO L290 TraceCheckUtils]: 29: Hoare triple {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1146#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:37:50,241 INFO L290 TraceCheckUtils]: 30: Hoare triple {1146#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1049#false} is VALID [2022-04-28 04:37:50,241 INFO L290 TraceCheckUtils]: 31: Hoare triple {1049#false} assume !false; {1049#false} is VALID [2022-04-28 04:37:50,241 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-28 04:37:50,241 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:37:50,425 INFO L290 TraceCheckUtils]: 31: Hoare triple {1049#false} assume !false; {1049#false} is VALID [2022-04-28 04:37:50,425 INFO L290 TraceCheckUtils]: 30: Hoare triple {1146#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1049#false} is VALID [2022-04-28 04:37:50,425 INFO L290 TraceCheckUtils]: 29: Hoare triple {1142#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1146#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:37:50,426 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-28 04:37:50,427 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-28 04:37:50,518 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-28 04:37:50,519 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-28 04:37:50,520 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-28 04:37:50,521 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-28 04:37:50,521 INFO L290 TraceCheckUtils]: 22: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,521 INFO L290 TraceCheckUtils]: 21: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,521 INFO L290 TraceCheckUtils]: 20: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,521 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-28 04:37:50,521 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-28 04:37:50,522 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-28 04:37:50,522 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1048#true} {1048#true} #63#return; {1048#true} is VALID [2022-04-28 04:37:50,522 INFO L290 TraceCheckUtils]: 15: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,522 INFO L290 TraceCheckUtils]: 14: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,522 INFO L290 TraceCheckUtils]: 13: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,522 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-28 04:37:50,522 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-28 04:37:50,522 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1048#true} {1048#true} #61#return; {1048#true} is VALID [2022-04-28 04:37:50,523 INFO L290 TraceCheckUtils]: 9: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,523 INFO L290 TraceCheckUtils]: 8: Hoare triple {1048#true} assume !(0 == ~cond); {1048#true} is VALID [2022-04-28 04:37:50,523 INFO L290 TraceCheckUtils]: 7: Hoare triple {1048#true} ~cond := #in~cond; {1048#true} is VALID [2022-04-28 04:37:50,523 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-28 04:37:50,523 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-28 04:37:50,523 INFO L272 TraceCheckUtils]: 4: Hoare triple {1048#true} call #t~ret8 := main(); {1048#true} is VALID [2022-04-28 04:37:50,523 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1048#true} {1048#true} #69#return; {1048#true} is VALID [2022-04-28 04:37:50,523 INFO L290 TraceCheckUtils]: 2: Hoare triple {1048#true} assume true; {1048#true} is VALID [2022-04-28 04:37:50,523 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-28 04:37:50,523 INFO L272 TraceCheckUtils]: 0: Hoare triple {1048#true} call ULTIMATE.init(); {1048#true} is VALID [2022-04-28 04:37:50,524 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-28 04:37:50,524 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:37:50,524 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [685849086] [2022-04-28 04:37:50,524 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:37:50,524 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1743081540] [2022-04-28 04:37:50,524 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1743081540] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:37:50,524 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:37:50,524 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 13 [2022-04-28 04:37:50,524 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:37:50,524 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1911334737] [2022-04-28 04:37:50,524 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1911334737] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:37:50,524 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:37:50,524 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 04:37:50,525 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1504876238] [2022-04-28 04:37:50,525 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:37:50,525 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-28 04:37:50,525 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:37:50,525 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-28 04:37:50,547 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-28 04:37:50,547 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-28 04:37:50,547 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:50,547 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-28 04:37:50,548 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=33, Invalid=123, Unknown=0, NotChecked=0, Total=156 [2022-04-28 04:37:50,548 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-28 04:37:50,882 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:50,882 INFO L93 Difference]: Finished difference Result 56 states and 62 transitions. [2022-04-28 04:37:50,882 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-28 04:37:50,882 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-28 04:37:50,883 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:37:50,883 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-28 04:37:50,884 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 51 transitions. [2022-04-28 04:37:50,884 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-28 04:37:50,885 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 51 transitions. [2022-04-28 04:37:50,885 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 51 transitions. [2022-04-28 04:37:50,920 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:37:50,922 INFO L225 Difference]: With dead ends: 56 [2022-04-28 04:37:50,922 INFO L226 Difference]: Without dead ends: 54 [2022-04-28 04:37:50,922 INFO L412 NwaCegarLoop]: 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-28 04:37:50,923 INFO L413 NwaCegarLoop]: 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-28 04:37:50,923 INFO L414 NwaCegarLoop]: 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-28 04:37:50,923 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2022-04-28 04:37:50,956 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 50. [2022-04-28 04:37:50,956 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:37:50,957 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-28 04:37:50,957 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-28 04:37:50,957 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-28 04:37:50,958 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:50,958 INFO L93 Difference]: Finished difference Result 54 states and 60 transitions. [2022-04-28 04:37:50,959 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2022-04-28 04:37:50,959 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:50,959 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:50,959 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-28 04:37:50,959 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-28 04:37:50,960 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:37:50,961 INFO L93 Difference]: Finished difference Result 54 states and 60 transitions. [2022-04-28 04:37:50,961 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 60 transitions. [2022-04-28 04:37:50,961 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:37:50,961 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:37:50,961 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:37:50,961 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:37:50,961 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-28 04:37:50,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 54 transitions. [2022-04-28 04:37:50,962 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 54 transitions. Word has length 32 [2022-04-28 04:37:50,962 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:37:50,962 INFO L495 AbstractCegarLoop]: Abstraction has 50 states and 54 transitions. [2022-04-28 04:37:50,963 INFO L496 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-28 04:37:50,963 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 50 states and 54 transitions. [2022-04-28 04:37:51,024 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:37:51,024 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 54 transitions. [2022-04-28 04:37:51,024 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-28 04:37:51,024 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:37:51,025 INFO L195 NwaCegarLoop]: 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-28 04:37:51,043 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-28 04:37:51,227 WARN L477 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-28 04:37:51,228 INFO L420 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:37:51,228 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:37:51,228 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 1 times [2022-04-28 04:37:51,228 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:37:51,228 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [151940285] [2022-04-28 04:37:51,228 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:37:51,228 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 2 times [2022-04-28 04:37:51,228 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:37:51,229 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [133227643] [2022-04-28 04:37:51,229 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:37:51,229 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:37:51,239 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:37:51,239 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1440765009] [2022-04-28 04:37:51,239 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:37:51,239 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:37:51,239 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:37:51,240 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:37:51,241 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-28 04:37:51,274 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:37:51,274 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:37:51,275 INFO L263 TraceCheckSpWp]: Trace formula consists of 119 conjuncts, 30 conjunts are in the unsatisfiable core [2022-04-28 04:37:51,289 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:37:51,291 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:38:03,333 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:38:13,357 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:38:18,212 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:38:27,683 INFO L272 TraceCheckUtils]: 0: Hoare triple {1576#true} call ULTIMATE.init(); {1576#true} is VALID [2022-04-28 04:38:27,683 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-28 04:38:27,683 INFO L290 TraceCheckUtils]: 2: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:27,683 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1576#true} {1576#true} #69#return; {1576#true} is VALID [2022-04-28 04:38:27,683 INFO L272 TraceCheckUtils]: 4: Hoare triple {1576#true} call #t~ret8 := main(); {1576#true} is VALID [2022-04-28 04:38:27,684 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-28 04:38:27,684 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-28 04:38:27,684 INFO L290 TraceCheckUtils]: 7: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L290 TraceCheckUtils]: 8: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L290 TraceCheckUtils]: 9: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1576#true} {1576#true} #61#return; {1576#true} is VALID [2022-04-28 04:38:27,684 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-28 04:38:27,684 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-28 04:38:27,684 INFO L290 TraceCheckUtils]: 13: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L290 TraceCheckUtils]: 14: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L290 TraceCheckUtils]: 15: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:27,684 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1576#true} {1576#true} #63#return; {1576#true} is VALID [2022-04-28 04:38:27,688 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-28 04:38:27,688 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-28 04:38:27,688 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-28 04:38:27,689 INFO L290 TraceCheckUtils]: 20: Hoare triple {1576#true} ~cond := #in~cond; {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:38:27,689 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-28 04:38:27,689 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-28 04:38:27,689 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-28 04:38:27,690 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-28 04:38:27,690 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-28 04:38:27,690 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-28 04:38:27,691 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-28 04:38:27,691 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-28 04:38:27,691 INFO L290 TraceCheckUtils]: 29: Hoare triple {1576#true} ~cond := #in~cond; {1642#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:38:27,691 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-28 04:38:27,692 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-28 04:38:27,692 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-28 04:38:27,693 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-28 04:38:27,699 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-28 04:38:27,701 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-28 04:38:27,701 INFO L290 TraceCheckUtils]: 36: Hoare triple {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1700#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:38:27,702 INFO L290 TraceCheckUtils]: 37: Hoare triple {1700#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1577#false} is VALID [2022-04-28 04:38:27,702 INFO L290 TraceCheckUtils]: 38: Hoare triple {1577#false} assume !false; {1577#false} is VALID [2022-04-28 04:38:27,702 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-28 04:38:27,702 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:38:37,627 INFO L290 TraceCheckUtils]: 38: Hoare triple {1577#false} assume !false; {1577#false} is VALID [2022-04-28 04:38:37,627 INFO L290 TraceCheckUtils]: 37: Hoare triple {1700#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1577#false} is VALID [2022-04-28 04:38:37,628 INFO L290 TraceCheckUtils]: 36: Hoare triple {1696#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1700#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:38:37,628 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-28 04:38:37,629 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-28 04:38:37,630 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-28 04:38:37,631 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-28 04:38:37,631 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-28 04:38:37,631 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-28 04:38:37,632 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-28 04:38:37,632 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-28 04:38:37,632 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-28 04:38:37,633 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-28 04:38:37,636 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-28 04:38:37,637 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-28 04:38:37,637 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1576#true} {1576#true} #65#return; {1576#true} is VALID [2022-04-28 04:38:37,637 INFO L290 TraceCheckUtils]: 22: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:37,637 INFO L290 TraceCheckUtils]: 21: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-28 04:38:37,637 INFO L290 TraceCheckUtils]: 20: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-28 04:38:37,637 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-28 04:38:37,637 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-28 04:38:37,637 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-28 04:38:37,637 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1576#true} {1576#true} #63#return; {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 15: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 14: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 13: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-28 04:38:37,638 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-28 04:38:37,638 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-28 04:38:37,638 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1576#true} {1576#true} #61#return; {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 9: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 8: Hoare triple {1576#true} assume !(0 == ~cond); {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 7: Hoare triple {1576#true} ~cond := #in~cond; {1576#true} is VALID [2022-04-28 04:38:37,638 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-28 04:38:37,638 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-28 04:38:37,638 INFO L272 TraceCheckUtils]: 4: Hoare triple {1576#true} call #t~ret8 := main(); {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1576#true} {1576#true} #69#return; {1576#true} is VALID [2022-04-28 04:38:37,638 INFO L290 TraceCheckUtils]: 2: Hoare triple {1576#true} assume true; {1576#true} is VALID [2022-04-28 04:38:37,639 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-28 04:38:37,639 INFO L272 TraceCheckUtils]: 0: Hoare triple {1576#true} call ULTIMATE.init(); {1576#true} is VALID [2022-04-28 04:38:37,639 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-28 04:38:37,639 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:38:37,639 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [133227643] [2022-04-28 04:38:37,639 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:38:37,639 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1440765009] [2022-04-28 04:38:37,639 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1440765009] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:38:37,639 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:38:37,639 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 22 [2022-04-28 04:38:37,639 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:38:37,640 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [151940285] [2022-04-28 04:38:37,640 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [151940285] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:38:37,640 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:38:37,640 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 04:38:37,640 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [754172257] [2022-04-28 04:38:37,640 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:38:37,640 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-28 04:38:37,640 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:38:37,640 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-28 04:38:37,671 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-28 04:38:37,671 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 04:38:37,671 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:38:37,672 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 04:38:37,672 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=74, Invalid=388, Unknown=0, NotChecked=0, Total=462 [2022-04-28 04:38:37,672 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-28 04:38:40,432 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-28 04:38:40,657 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:38:40,657 INFO L93 Difference]: Finished difference Result 61 states and 66 transitions. [2022-04-28 04:38:40,657 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-28 04:38:40,658 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-28 04:38:40,658 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:38:40,659 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-28 04:38:40,660 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 53 transitions. [2022-04-28 04:38:40,660 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-28 04:38:40,662 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 53 transitions. [2022-04-28 04:38:40,662 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 53 transitions. [2022-04-28 04:38:40,705 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-28 04:38:40,707 INFO L225 Difference]: With dead ends: 61 [2022-04-28 04:38:40,707 INFO L226 Difference]: Without dead ends: 53 [2022-04-28 04:38:40,707 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 82 GetRequests, 56 SyntacticMatches, 1 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 131 ImplicationChecksByTransitivity, 2.9s TimeCoverageRelationStatistics Valid=116, Invalid=586, Unknown=0, NotChecked=0, Total=702 [2022-04-28 04:38:40,708 INFO L413 NwaCegarLoop]: 23 mSDtfsCounter, 16 mSDsluCounter, 196 mSDsCounter, 0 mSdLazyCounter, 294 mSolverCounterSat, 4 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 219 SdHoareTripleChecker+Invalid, 299 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 4 IncrementalHoareTripleChecker+Valid, 294 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 2.3s IncrementalHoareTripleChecker+Time [2022-04-28 04:38:40,708 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [17 Valid, 219 Invalid, 299 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [4 Valid, 294 Invalid, 1 Unknown, 0 Unchecked, 2.3s Time] [2022-04-28 04:38:40,708 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2022-04-28 04:38:40,794 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 43. [2022-04-28 04:38:40,794 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:38:40,794 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-28 04:38:40,794 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-28 04:38:40,795 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-28 04:38:40,796 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:38:40,796 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-04-28 04:38:40,796 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-04-28 04:38:40,796 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:38:40,796 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:38:40,796 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-28 04:38:40,796 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-28 04:38:40,798 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:38:40,798 INFO L93 Difference]: Finished difference Result 53 states and 58 transitions. [2022-04-28 04:38:40,798 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 58 transitions. [2022-04-28 04:38:40,798 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:38:40,798 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:38:40,798 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:38:40,798 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:38:40,798 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-28 04:38:40,799 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 47 transitions. [2022-04-28 04:38:40,799 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 47 transitions. Word has length 39 [2022-04-28 04:38:40,799 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:38:40,799 INFO L495 AbstractCegarLoop]: Abstraction has 43 states and 47 transitions. [2022-04-28 04:38:40,799 INFO L496 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-28 04:38:40,799 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 43 states and 47 transitions. [2022-04-28 04:38:40,849 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-28 04:38:40,849 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 47 transitions. [2022-04-28 04:38:40,849 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-28 04:38:40,849 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:38:40,849 INFO L195 NwaCegarLoop]: 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-28 04:38:40,865 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-28 04:38:41,059 WARN L477 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-28 04:38:41,059 INFO L420 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:38:41,060 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:38:41,061 INFO L85 PathProgramCache]: Analyzing trace with hash 733948825, now seen corresponding path program 3 times [2022-04-28 04:38:41,061 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:38:41,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1170786728] [2022-04-28 04:38:41,061 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:38:41,061 INFO L85 PathProgramCache]: Analyzing trace with hash 733948825, now seen corresponding path program 4 times [2022-04-28 04:38:41,061 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:38:41,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [864122656] [2022-04-28 04:38:41,061 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:38:41,061 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:38:41,085 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:38:41,085 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [262666740] [2022-04-28 04:38:41,085 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:38:41,085 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:38:41,085 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:38:41,088 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:38:41,090 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-28 04:38:41,123 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:38:41,123 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:38:41,124 INFO L263 TraceCheckSpWp]: Trace formula consists of 83 conjuncts, 33 conjunts are in the unsatisfiable core [2022-04-28 04:38:41,135 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:38:41,136 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:38:58,109 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:39:02,660 INFO L272 TraceCheckUtils]: 0: Hoare triple {2155#true} call ULTIMATE.init(); {2155#true} is VALID [2022-04-28 04:39:02,661 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-28 04:39:02,661 INFO L290 TraceCheckUtils]: 2: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:02,661 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2155#true} {2155#true} #69#return; {2155#true} is VALID [2022-04-28 04:39:02,661 INFO L272 TraceCheckUtils]: 4: Hoare triple {2155#true} call #t~ret8 := main(); {2155#true} is VALID [2022-04-28 04:39:02,661 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-28 04:39:02,661 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-28 04:39:02,661 INFO L290 TraceCheckUtils]: 7: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-28 04:39:02,661 INFO L290 TraceCheckUtils]: 8: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-28 04:39:02,661 INFO L290 TraceCheckUtils]: 9: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:02,661 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2155#true} {2155#true} #61#return; {2155#true} is VALID [2022-04-28 04:39:02,661 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-28 04:39:02,661 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-28 04:39:02,661 INFO L290 TraceCheckUtils]: 13: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-28 04:39:02,662 INFO L290 TraceCheckUtils]: 14: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-28 04:39:02,662 INFO L290 TraceCheckUtils]: 15: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:02,662 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2155#true} {2155#true} #63#return; {2155#true} is VALID [2022-04-28 04:39:02,664 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-28 04:39:02,665 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-28 04:39:02,665 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-28 04:39:02,665 INFO L290 TraceCheckUtils]: 20: Hoare triple {2155#true} ~cond := #in~cond; {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:02,665 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-28 04:39:02,665 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-28 04:39:02,666 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-28 04:39:02,666 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-28 04:39:02,667 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-28 04:39:02,667 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-28 04:39:02,668 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-28 04:39:02,668 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-28 04:39:02,668 INFO L290 TraceCheckUtils]: 29: Hoare triple {2155#true} ~cond := #in~cond; {2221#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:02,668 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-28 04:39:02,669 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-28 04:39:02,670 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-28 04:39:02,670 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-28 04:39:02,671 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-28 04:39:02,672 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-28 04:39:02,678 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-28 04:39:02,682 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-28 04:39:02,682 INFO L290 TraceCheckUtils]: 38: Hoare triple {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2284#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:02,682 INFO L290 TraceCheckUtils]: 39: Hoare triple {2284#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2156#false} is VALID [2022-04-28 04:39:02,682 INFO L290 TraceCheckUtils]: 40: Hoare triple {2156#false} assume !false; {2156#false} is VALID [2022-04-28 04:39:02,683 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-28 04:39:02,683 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:06,193 INFO L290 TraceCheckUtils]: 40: Hoare triple {2156#false} assume !false; {2156#false} is VALID [2022-04-28 04:39:06,193 INFO L290 TraceCheckUtils]: 39: Hoare triple {2284#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2156#false} is VALID [2022-04-28 04:39:06,194 INFO L290 TraceCheckUtils]: 38: Hoare triple {2280#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2284#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:06,194 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-28 04:39:06,195 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-28 04:39:06,196 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-28 04:39:06,197 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-28 04:39:06,197 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-28 04:39:06,198 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-28 04:39:06,199 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-28 04:39:06,199 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-28 04:39:06,199 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-28 04:39:06,199 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-28 04:39:06,200 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-28 04:39:06,200 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-28 04:39:06,200 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-28 04:39:06,200 INFO L290 TraceCheckUtils]: 24: Hoare triple {2155#true} assume !!(~x~0 <= ~X~0); {2155#true} is VALID [2022-04-28 04:39:06,200 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2155#true} {2155#true} #65#return; {2155#true} is VALID [2022-04-28 04:39:06,200 INFO L290 TraceCheckUtils]: 22: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:06,200 INFO L290 TraceCheckUtils]: 21: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-28 04:39:06,200 INFO L290 TraceCheckUtils]: 20: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-28 04:39:06,201 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-28 04:39:06,201 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-28 04:39:06,201 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-28 04:39:06,201 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2155#true} {2155#true} #63#return; {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 15: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 14: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 13: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-28 04:39:06,201 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-28 04:39:06,201 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-28 04:39:06,201 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2155#true} {2155#true} #61#return; {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 9: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 8: Hoare triple {2155#true} assume !(0 == ~cond); {2155#true} is VALID [2022-04-28 04:39:06,201 INFO L290 TraceCheckUtils]: 7: Hoare triple {2155#true} ~cond := #in~cond; {2155#true} is VALID [2022-04-28 04:39:06,201 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-28 04:39:06,201 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-28 04:39:06,202 INFO L272 TraceCheckUtils]: 4: Hoare triple {2155#true} call #t~ret8 := main(); {2155#true} is VALID [2022-04-28 04:39:06,202 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2155#true} {2155#true} #69#return; {2155#true} is VALID [2022-04-28 04:39:06,202 INFO L290 TraceCheckUtils]: 2: Hoare triple {2155#true} assume true; {2155#true} is VALID [2022-04-28 04:39:06,202 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-28 04:39:06,202 INFO L272 TraceCheckUtils]: 0: Hoare triple {2155#true} call ULTIMATE.init(); {2155#true} is VALID [2022-04-28 04:39:06,202 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-28 04:39:06,202 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:06,202 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [864122656] [2022-04-28 04:39:06,202 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:06,202 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [262666740] [2022-04-28 04:39:06,202 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [262666740] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:06,202 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:06,202 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 10] total 18 [2022-04-28 04:39:06,203 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:06,203 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1170786728] [2022-04-28 04:39:06,203 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1170786728] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:06,203 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:06,203 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:39:06,203 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1562268406] [2022-04-28 04:39:06,203 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:06,203 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-28 04:39:06,203 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:06,204 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-28 04:39:06,236 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-28 04:39:06,236 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:39:06,236 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:06,236 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:39:06,236 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=47, Invalid=259, Unknown=0, NotChecked=0, Total=306 [2022-04-28 04:39:06,237 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-28 04:39:07,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:07,192 INFO L93 Difference]: Finished difference Result 61 states and 69 transitions. [2022-04-28 04:39:07,192 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 04:39:07,192 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-28 04:39:07,193 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:07,193 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-28 04:39:07,194 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-28 04:39:07,194 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-28 04:39:07,195 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-28 04:39:07,195 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 58 transitions. [2022-04-28 04:39:07,252 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-28 04:39:07,253 INFO L225 Difference]: With dead ends: 61 [2022-04-28 04:39:07,253 INFO L226 Difference]: Without dead ends: 57 [2022-04-28 04:39:07,253 INFO L412 NwaCegarLoop]: 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-28 04:39:07,254 INFO L413 NwaCegarLoop]: 24 mSDtfsCounter, 18 mSDsluCounter, 125 mSDsCounter, 0 mSdLazyCounter, 248 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s 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.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:39:07,254 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [19 Valid, 149 Invalid, 256 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 248 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-04-28 04:39:07,254 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2022-04-28 04:39:07,301 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 55. [2022-04-28 04:39:07,301 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:07,302 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-28 04:39:07,302 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-28 04:39:07,302 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-28 04:39:07,304 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:07,304 INFO L93 Difference]: Finished difference Result 57 states and 64 transitions. [2022-04-28 04:39:07,304 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 64 transitions. [2022-04-28 04:39:07,304 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:07,304 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:07,304 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-28 04:39:07,305 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-28 04:39:07,306 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:07,306 INFO L93 Difference]: Finished difference Result 57 states and 64 transitions. [2022-04-28 04:39:07,306 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 64 transitions. [2022-04-28 04:39:07,306 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:07,306 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:07,306 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:07,306 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:07,307 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-28 04:39:07,308 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 61 transitions. [2022-04-28 04:39:07,308 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 61 transitions. Word has length 41 [2022-04-28 04:39:07,308 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:07,308 INFO L495 AbstractCegarLoop]: Abstraction has 55 states and 61 transitions. [2022-04-28 04:39:07,309 INFO L496 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-28 04:39:07,309 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 55 states and 61 transitions. [2022-04-28 04:39:07,379 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:39:07,380 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 61 transitions. [2022-04-28 04:39:07,380 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-28 04:39:07,380 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:07,380 INFO L195 NwaCegarLoop]: 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-28 04:39:07,396 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-04-28 04:39:07,591 WARN L477 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-28 04:39:07,591 INFO L420 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:07,592 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:07,592 INFO L85 PathProgramCache]: Analyzing trace with hash -1786011109, now seen corresponding path program 1 times [2022-04-28 04:39:07,592 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:07,592 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [382239868] [2022-04-28 04:39:07,592 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:07,592 INFO L85 PathProgramCache]: Analyzing trace with hash -1786011109, now seen corresponding path program 2 times [2022-04-28 04:39:07,592 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:07,592 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1256526516] [2022-04-28 04:39:07,592 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:07,593 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:07,604 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:07,604 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [461692486] [2022-04-28 04:39:07,604 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:39:07,604 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:07,604 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:07,608 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:39:07,609 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-28 04:39:07,649 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:39:07,650 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:07,650 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-28 04:39:07,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:07,666 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:39:07,949 INFO L272 TraceCheckUtils]: 0: Hoare triple {2772#true} call ULTIMATE.init(); {2772#true} is VALID [2022-04-28 04:39:07,949 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-28 04:39:07,949 INFO L290 TraceCheckUtils]: 2: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:07,949 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2772#true} {2772#true} #69#return; {2772#true} is VALID [2022-04-28 04:39:07,949 INFO L272 TraceCheckUtils]: 4: Hoare triple {2772#true} call #t~ret8 := main(); {2772#true} is VALID [2022-04-28 04:39:07,949 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-28 04:39:07,949 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-28 04:39:07,949 INFO L290 TraceCheckUtils]: 7: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:07,949 INFO L290 TraceCheckUtils]: 8: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:07,949 INFO L290 TraceCheckUtils]: 9: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:07,950 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2772#true} {2772#true} #61#return; {2772#true} is VALID [2022-04-28 04:39:07,950 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-28 04:39:07,950 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-28 04:39:07,950 INFO L290 TraceCheckUtils]: 13: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:07,950 INFO L290 TraceCheckUtils]: 14: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:07,950 INFO L290 TraceCheckUtils]: 15: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:07,950 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2772#true} {2772#true} #63#return; {2772#true} is VALID [2022-04-28 04:39:07,950 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-28 04:39:07,951 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-28 04:39:07,951 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-28 04:39:07,951 INFO L290 TraceCheckUtils]: 20: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:07,951 INFO L290 TraceCheckUtils]: 21: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:07,951 INFO L290 TraceCheckUtils]: 22: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:07,951 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-28 04:39:07,960 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-28 04:39:07,960 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-28 04:39:07,961 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-28 04:39:07,961 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-28 04:39:07,961 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-28 04:39:07,962 INFO L290 TraceCheckUtils]: 29: Hoare triple {2772#true} ~cond := #in~cond; {2868#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:07,962 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-28 04:39:07,962 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-28 04:39:07,971 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-28 04:39:07,972 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-28 04:39:07,972 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-28 04:39:07,973 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-28 04:39:07,974 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-28 04:39:07,975 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-28 04:39:07,977 INFO L290 TraceCheckUtils]: 38: Hoare triple {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2901#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:07,977 INFO L290 TraceCheckUtils]: 39: Hoare triple {2901#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2773#false} is VALID [2022-04-28 04:39:07,978 INFO L290 TraceCheckUtils]: 40: Hoare triple {2773#false} assume !false; {2773#false} is VALID [2022-04-28 04:39:07,978 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-28 04:39:07,978 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:14,314 INFO L290 TraceCheckUtils]: 40: Hoare triple {2773#false} assume !false; {2773#false} is VALID [2022-04-28 04:39:14,314 INFO L290 TraceCheckUtils]: 39: Hoare triple {2901#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2773#false} is VALID [2022-04-28 04:39:14,314 INFO L290 TraceCheckUtils]: 38: Hoare triple {2897#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2901#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:14,315 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-28 04:39:14,316 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-28 04:39:14,319 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-28 04:39:14,320 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-28 04:39:14,321 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-28 04:39:14,321 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-28 04:39:14,322 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-28 04:39:14,322 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-28 04:39:14,322 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-28 04:39:14,322 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-28 04:39:14,323 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-28 04:39:14,323 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-28 04:39:14,323 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-28 04:39:14,323 INFO L290 TraceCheckUtils]: 24: Hoare triple {2772#true} assume !!(~x~0 <= ~X~0); {2772#true} is VALID [2022-04-28 04:39:14,323 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2772#true} {2772#true} #65#return; {2772#true} is VALID [2022-04-28 04:39:14,323 INFO L290 TraceCheckUtils]: 22: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:14,323 INFO L290 TraceCheckUtils]: 21: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:14,323 INFO L290 TraceCheckUtils]: 20: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:14,324 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-28 04:39:14,324 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-28 04:39:14,324 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-28 04:39:14,324 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2772#true} {2772#true} #63#return; {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 15: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 14: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 13: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:14,324 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-28 04:39:14,324 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-28 04:39:14,324 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2772#true} {2772#true} #61#return; {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 9: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 8: Hoare triple {2772#true} assume !(0 == ~cond); {2772#true} is VALID [2022-04-28 04:39:14,324 INFO L290 TraceCheckUtils]: 7: Hoare triple {2772#true} ~cond := #in~cond; {2772#true} is VALID [2022-04-28 04:39:14,324 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-28 04:39:14,325 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-28 04:39:14,325 INFO L272 TraceCheckUtils]: 4: Hoare triple {2772#true} call #t~ret8 := main(); {2772#true} is VALID [2022-04-28 04:39:14,325 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2772#true} {2772#true} #69#return; {2772#true} is VALID [2022-04-28 04:39:14,325 INFO L290 TraceCheckUtils]: 2: Hoare triple {2772#true} assume true; {2772#true} is VALID [2022-04-28 04:39:14,325 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-28 04:39:14,325 INFO L272 TraceCheckUtils]: 0: Hoare triple {2772#true} call ULTIMATE.init(); {2772#true} is VALID [2022-04-28 04:39:14,326 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-28 04:39:14,326 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:14,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1256526516] [2022-04-28 04:39:14,326 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:14,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [461692486] [2022-04-28 04:39:14,326 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [461692486] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:14,326 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:14,326 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 10] total 18 [2022-04-28 04:39:14,326 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:14,326 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [382239868] [2022-04-28 04:39:14,326 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [382239868] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:14,326 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:14,326 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:39:14,326 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [4403369] [2022-04-28 04:39:14,327 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:14,327 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-28 04:39:14,327 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:14,328 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-28 04:39:14,365 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-28 04:39:14,365 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:39:14,365 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:14,365 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:39:14,365 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=51, Invalid=255, Unknown=0, NotChecked=0, Total=306 [2022-04-28 04:39:14,366 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-28 04:39:15,090 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:15,090 INFO L93 Difference]: Finished difference Result 72 states and 79 transitions. [2022-04-28 04:39:15,090 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 04:39:15,090 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-28 04:39:15,091 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:15,091 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-28 04:39:15,092 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-28 04:39:15,092 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-28 04:39:15,093 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 58 transitions. [2022-04-28 04:39:15,093 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 58 transitions. [2022-04-28 04:39:15,141 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-28 04:39:15,142 INFO L225 Difference]: With dead ends: 72 [2022-04-28 04:39:15,142 INFO L226 Difference]: Without dead ends: 70 [2022-04-28 04:39:15,143 INFO L412 NwaCegarLoop]: 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-28 04:39:15,143 INFO L413 NwaCegarLoop]: 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-28 04:39:15,143 INFO L414 NwaCegarLoop]: 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-28 04:39:15,143 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-04-28 04:39:15,192 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 59. [2022-04-28 04:39:15,192 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:15,192 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-28 04:39:15,193 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-28 04:39:15,193 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-28 04:39:15,194 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:15,194 INFO L93 Difference]: Finished difference Result 70 states and 77 transitions. [2022-04-28 04:39:15,194 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 77 transitions. [2022-04-28 04:39:15,194 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:15,195 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:15,195 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-28 04:39:15,195 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-28 04:39:15,196 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:15,196 INFO L93 Difference]: Finished difference Result 70 states and 77 transitions. [2022-04-28 04:39:15,196 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 77 transitions. [2022-04-28 04:39:15,196 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:15,196 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:15,197 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:15,197 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:15,197 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-28 04:39:15,198 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 64 transitions. [2022-04-28 04:39:15,198 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 64 transitions. Word has length 41 [2022-04-28 04:39:15,198 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:15,198 INFO L495 AbstractCegarLoop]: Abstraction has 59 states and 64 transitions. [2022-04-28 04:39:15,198 INFO L496 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-28 04:39:15,198 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 59 states and 64 transitions. [2022-04-28 04:39:15,288 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-28 04:39:15,289 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 64 transitions. [2022-04-28 04:39:15,289 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-28 04:39:15,289 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:15,289 INFO L195 NwaCegarLoop]: 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-28 04:39:15,305 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-28 04:39:15,499 WARN L477 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-28 04:39:15,500 INFO L420 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:15,500 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:15,500 INFO L85 PathProgramCache]: Analyzing trace with hash -287119529, now seen corresponding path program 3 times [2022-04-28 04:39:15,500 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:15,500 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1187053339] [2022-04-28 04:39:15,500 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:15,500 INFO L85 PathProgramCache]: Analyzing trace with hash -287119529, now seen corresponding path program 4 times [2022-04-28 04:39:15,500 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:15,501 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [779469836] [2022-04-28 04:39:15,501 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:15,501 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:15,513 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:15,513 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [219758022] [2022-04-28 04:39:15,513 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:39:15,513 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:15,513 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:15,514 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:39:15,515 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-28 04:39:15,562 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:39:15,562 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:15,570 INFO L263 TraceCheckSpWp]: Trace formula consists of 85 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-28 04:39:15,579 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:15,580 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:39:28,002 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:39:32,517 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:39:34,884 INFO L272 TraceCheckUtils]: 0: Hoare triple {3443#true} call ULTIMATE.init(); {3443#true} is VALID [2022-04-28 04:39:34,884 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-28 04:39:34,884 INFO L290 TraceCheckUtils]: 2: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:34,884 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3443#true} {3443#true} #69#return; {3443#true} is VALID [2022-04-28 04:39:34,884 INFO L272 TraceCheckUtils]: 4: Hoare triple {3443#true} call #t~ret8 := main(); {3443#true} is VALID [2022-04-28 04:39:34,884 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-28 04:39:34,885 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-28 04:39:34,885 INFO L290 TraceCheckUtils]: 7: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L290 TraceCheckUtils]: 8: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L290 TraceCheckUtils]: 9: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3443#true} {3443#true} #61#return; {3443#true} is VALID [2022-04-28 04:39:34,885 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-28 04:39:34,885 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-28 04:39:34,885 INFO L290 TraceCheckUtils]: 13: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L290 TraceCheckUtils]: 14: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L290 TraceCheckUtils]: 15: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:34,885 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3443#true} {3443#true} #63#return; {3443#true} is VALID [2022-04-28 04:39:34,885 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-28 04:39:34,886 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-28 04:39:34,886 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-28 04:39:34,886 INFO L290 TraceCheckUtils]: 20: Hoare triple {3443#true} ~cond := #in~cond; {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:34,886 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-28 04:39:34,887 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-28 04:39:34,887 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-28 04:39:34,888 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-28 04:39:34,888 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-28 04:39:34,889 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-28 04:39:34,889 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-28 04:39:34,889 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-28 04:39:34,889 INFO L290 TraceCheckUtils]: 29: Hoare triple {3443#true} ~cond := #in~cond; {3509#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:34,890 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-28 04:39:34,890 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-28 04:39:34,891 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-28 04:39:34,891 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-28 04:39:34,892 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-28 04:39:34,893 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-28 04:39:34,894 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-28 04:39:34,896 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-28 04:39:34,896 INFO L290 TraceCheckUtils]: 38: Hoare triple {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3573#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:34,896 INFO L290 TraceCheckUtils]: 39: Hoare triple {3573#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3444#false} is VALID [2022-04-28 04:39:34,896 INFO L290 TraceCheckUtils]: 40: Hoare triple {3444#false} assume !false; {3444#false} is VALID [2022-04-28 04:39:34,896 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-28 04:39:34,896 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:37,356 INFO L290 TraceCheckUtils]: 40: Hoare triple {3444#false} assume !false; {3444#false} is VALID [2022-04-28 04:39:37,356 INFO L290 TraceCheckUtils]: 39: Hoare triple {3573#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3444#false} is VALID [2022-04-28 04:39:37,357 INFO L290 TraceCheckUtils]: 38: Hoare triple {3569#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3573#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:37,357 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-28 04:39:37,358 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-28 04:39:37,359 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-28 04:39:37,360 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-28 04:39:37,360 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-28 04:39:37,361 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-28 04:39:37,361 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-28 04:39:37,362 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-28 04:39:37,362 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-28 04:39:37,362 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-28 04:39:37,363 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-28 04:39:37,363 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-28 04:39:37,363 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-28 04:39:37,363 INFO L290 TraceCheckUtils]: 24: Hoare triple {3443#true} assume !!(~x~0 <= ~X~0); {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3443#true} {3443#true} #65#return; {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L290 TraceCheckUtils]: 22: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L290 TraceCheckUtils]: 21: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L290 TraceCheckUtils]: 20: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-28 04:39:37,363 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-28 04:39:37,363 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-28 04:39:37,363 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-28 04:39:37,363 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3443#true} {3443#true} #63#return; {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L290 TraceCheckUtils]: 15: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:37,363 INFO L290 TraceCheckUtils]: 14: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L290 TraceCheckUtils]: 13: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-28 04:39:37,364 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-28 04:39:37,364 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-28 04:39:37,364 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3443#true} {3443#true} #61#return; {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L290 TraceCheckUtils]: 9: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L290 TraceCheckUtils]: 8: Hoare triple {3443#true} assume !(0 == ~cond); {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L290 TraceCheckUtils]: 7: Hoare triple {3443#true} ~cond := #in~cond; {3443#true} is VALID [2022-04-28 04:39:37,364 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-28 04:39:37,364 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-28 04:39:37,364 INFO L272 TraceCheckUtils]: 4: Hoare triple {3443#true} call #t~ret8 := main(); {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3443#true} {3443#true} #69#return; {3443#true} is VALID [2022-04-28 04:39:37,364 INFO L290 TraceCheckUtils]: 2: Hoare triple {3443#true} assume true; {3443#true} is VALID [2022-04-28 04:39:37,364 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-28 04:39:37,364 INFO L272 TraceCheckUtils]: 0: Hoare triple {3443#true} call ULTIMATE.init(); {3443#true} is VALID [2022-04-28 04:39:37,365 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-28 04:39:37,365 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:37,365 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [779469836] [2022-04-28 04:39:37,365 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:37,365 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [219758022] [2022-04-28 04:39:37,365 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [219758022] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:37,365 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:37,365 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 11] total 20 [2022-04-28 04:39:37,365 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:37,365 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1187053339] [2022-04-28 04:39:37,365 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1187053339] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:37,365 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:37,365 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 04:39:37,365 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [586591413] [2022-04-28 04:39:37,365 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:37,366 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-28 04:39:37,366 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:37,366 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-28 04:39:37,392 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-28 04:39:37,392 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 04:39:37,392 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:37,392 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 04:39:37,392 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=319, Unknown=1, NotChecked=0, Total=380 [2022-04-28 04:39:37,393 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-28 04:39:41,180 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.44s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-28 04:39:43,348 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-28 04:39:45,470 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-28 04:39:49,529 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-28 04:39:50,336 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:50,336 INFO L93 Difference]: Finished difference Result 86 states and 98 transitions. [2022-04-28 04:39:50,336 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-28 04:39:50,336 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-28 04:39:50,336 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:50,337 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-28 04:39:50,338 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 70 transitions. [2022-04-28 04:39:50,338 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-28 04:39:50,339 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 70 transitions. [2022-04-28 04:39:50,339 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 70 transitions. [2022-04-28 04:39:50,392 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-28 04:39:50,394 INFO L225 Difference]: With dead ends: 86 [2022-04-28 04:39:50,394 INFO L226 Difference]: Without dead ends: 73 [2022-04-28 04:39:50,394 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 61 SyntacticMatches, 2 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 71 ImplicationChecksByTransitivity, 4.8s TimeCoverageRelationStatistics Valid=98, Invalid=500, Unknown=2, NotChecked=0, Total=600 [2022-04-28 04:39:50,394 INFO L413 NwaCegarLoop]: 26 mSDtfsCounter, 15 mSDsluCounter, 158 mSDsCounter, 0 mSdLazyCounter, 299 mSolverCounterSat, 6 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 7.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 16 SdHoareTripleChecker+Valid, 184 SdHoareTripleChecker+Invalid, 308 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 299 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 7.8s IncrementalHoareTripleChecker+Time [2022-04-28 04:39:50,395 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [16 Valid, 184 Invalid, 308 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 299 Invalid, 3 Unknown, 0 Unchecked, 7.8s Time] [2022-04-28 04:39:50,395 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2022-04-28 04:39:50,485 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 73. [2022-04-28 04:39:50,486 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:50,486 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-28 04:39:50,486 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-28 04:39:50,486 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-28 04:39:50,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:50,488 INFO L93 Difference]: Finished difference Result 73 states and 80 transitions. [2022-04-28 04:39:50,488 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-28 04:39:50,489 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:50,489 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:50,489 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-28 04:39:50,490 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-28 04:39:50,492 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:50,492 INFO L93 Difference]: Finished difference Result 73 states and 80 transitions. [2022-04-28 04:39:50,492 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-28 04:39:50,492 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:50,492 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:50,492 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:50,492 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:50,496 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-28 04:39:50,498 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-28 04:39:50,498 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 41 [2022-04-28 04:39:50,498 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:50,498 INFO L495 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-28 04:39:50,498 INFO L496 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-28 04:39:50,498 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-28 04:39:50,626 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-28 04:39:50,626 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-28 04:39:50,627 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-04-28 04:39:50,627 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:50,627 INFO L195 NwaCegarLoop]: 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-28 04:39:50,630 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Ended with exit code 0 [2022-04-28 04:39:50,827 WARN L477 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-28 04:39:50,829 INFO L420 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:50,830 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:50,830 INFO L85 PathProgramCache]: Analyzing trace with hash 1487887833, now seen corresponding path program 3 times [2022-04-28 04:39:50,830 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:50,830 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [756217878] [2022-04-28 04:39:50,830 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:50,830 INFO L85 PathProgramCache]: Analyzing trace with hash 1487887833, now seen corresponding path program 4 times [2022-04-28 04:39:50,830 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:50,830 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1478324222] [2022-04-28 04:39:50,830 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:50,830 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:50,840 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:50,840 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1265667743] [2022-04-28 04:39:50,840 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:39:50,840 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:50,840 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:50,841 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:39:50,842 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-04-28 04:39:50,894 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:39:50,894 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:50,895 INFO L263 TraceCheckSpWp]: Trace formula consists of 87 conjuncts, 27 conjunts are in the unsatisfiable core [2022-04-28 04:39:50,903 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:50,903 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:39:51,190 INFO L272 TraceCheckUtils]: 0: Hoare triple {4182#true} call ULTIMATE.init(); {4182#true} is VALID [2022-04-28 04:39:51,191 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-28 04:39:51,191 INFO L290 TraceCheckUtils]: 2: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4182#true} {4182#true} #69#return; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L272 TraceCheckUtils]: 4: Hoare triple {4182#true} call #t~ret8 := main(); {4182#true} is VALID [2022-04-28 04:39:51,191 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-28 04:39:51,191 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-28 04:39:51,191 INFO L290 TraceCheckUtils]: 7: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L290 TraceCheckUtils]: 8: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L290 TraceCheckUtils]: 9: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4182#true} {4182#true} #61#return; {4182#true} is VALID [2022-04-28 04:39:51,191 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-28 04:39:51,191 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-28 04:39:51,191 INFO L290 TraceCheckUtils]: 13: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L290 TraceCheckUtils]: 14: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L290 TraceCheckUtils]: 15: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,191 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4182#true} {4182#true} #63#return; {4182#true} is VALID [2022-04-28 04:39:51,192 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-28 04:39:51,192 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-28 04:39:51,192 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-28 04:39:51,192 INFO L290 TraceCheckUtils]: 20: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,192 INFO L290 TraceCheckUtils]: 21: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,192 INFO L290 TraceCheckUtils]: 22: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,193 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-28 04:39:51,193 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-28 04:39:51,194 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-28 04:39:51,194 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-28 04:39:51,195 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-28 04:39:51,195 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-28 04:39:51,195 INFO L290 TraceCheckUtils]: 29: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,195 INFO L290 TraceCheckUtils]: 30: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,195 INFO L290 TraceCheckUtils]: 31: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,195 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-28 04:39:51,196 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-28 04:39:51,196 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-28 04:39:51,197 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-28 04:39:51,197 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-28 04:39:51,198 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-28 04:39:51,199 INFO L290 TraceCheckUtils]: 38: Hoare triple {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:51,199 INFO L290 TraceCheckUtils]: 39: Hoare triple {4309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4183#false} is VALID [2022-04-28 04:39:51,199 INFO L290 TraceCheckUtils]: 40: Hoare triple {4183#false} assume !false; {4183#false} is VALID [2022-04-28 04:39:51,199 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-28 04:39:51,199 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:51,567 INFO L290 TraceCheckUtils]: 40: Hoare triple {4183#false} assume !false; {4183#false} is VALID [2022-04-28 04:39:51,568 INFO L290 TraceCheckUtils]: 39: Hoare triple {4309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4183#false} is VALID [2022-04-28 04:39:51,568 INFO L290 TraceCheckUtils]: 38: Hoare triple {4305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:51,569 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-28 04:39:51,569 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-28 04:39:51,571 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-28 04:39:51,572 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-28 04:39:51,573 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-28 04:39:51,573 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-28 04:39:51,573 INFO L290 TraceCheckUtils]: 31: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,573 INFO L290 TraceCheckUtils]: 30: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,573 INFO L290 TraceCheckUtils]: 29: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,573 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-28 04:39:51,574 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-28 04:39:51,575 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-28 04:39:51,577 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-28 04:39:51,577 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-28 04:39:51,578 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-28 04:39:51,578 INFO L290 TraceCheckUtils]: 22: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,578 INFO L290 TraceCheckUtils]: 21: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,578 INFO L290 TraceCheckUtils]: 20: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,578 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-28 04:39:51,578 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-28 04:39:51,579 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-28 04:39:51,579 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4182#true} {4182#true} #63#return; {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 15: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 14: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 13: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,579 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-28 04:39:51,579 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-28 04:39:51,579 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4182#true} {4182#true} #61#return; {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 9: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 8: Hoare triple {4182#true} assume !(0 == ~cond); {4182#true} is VALID [2022-04-28 04:39:51,579 INFO L290 TraceCheckUtils]: 7: Hoare triple {4182#true} ~cond := #in~cond; {4182#true} is VALID [2022-04-28 04:39:51,580 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-28 04:39:51,580 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-28 04:39:51,580 INFO L272 TraceCheckUtils]: 4: Hoare triple {4182#true} call #t~ret8 := main(); {4182#true} is VALID [2022-04-28 04:39:51,580 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4182#true} {4182#true} #69#return; {4182#true} is VALID [2022-04-28 04:39:51,580 INFO L290 TraceCheckUtils]: 2: Hoare triple {4182#true} assume true; {4182#true} is VALID [2022-04-28 04:39:51,580 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-28 04:39:51,580 INFO L272 TraceCheckUtils]: 0: Hoare triple {4182#true} call ULTIMATE.init(); {4182#true} is VALID [2022-04-28 04:39:51,580 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-28 04:39:51,580 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:51,580 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1478324222] [2022-04-28 04:39:51,580 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:51,580 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1265667743] [2022-04-28 04:39:51,580 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1265667743] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:51,580 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:51,581 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 18 [2022-04-28 04:39:51,581 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:51,581 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [756217878] [2022-04-28 04:39:51,581 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [756217878] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:51,581 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:51,581 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [11] imperfect sequences [] total 11 [2022-04-28 04:39:51,581 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1212231011] [2022-04-28 04:39:51,581 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:51,582 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-28 04:39:51,582 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:51,582 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-28 04:39:51,616 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-28 04:39:51,616 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-28 04:39:51,616 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:51,616 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-28 04:39:51,616 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=246, Unknown=0, NotChecked=0, Total=306 [2022-04-28 04:39:51,617 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-28 04:39:52,300 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:52,300 INFO L93 Difference]: Finished difference Result 86 states and 95 transitions. [2022-04-28 04:39:52,300 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-28 04:39:52,300 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-28 04:39:52,301 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:52,301 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-28 04:39:52,302 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-28 04:39:52,302 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-28 04:39:52,302 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-28 04:39:52,303 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 58 transitions. [2022-04-28 04:39:52,348 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-28 04:39:52,349 INFO L225 Difference]: With dead ends: 86 [2022-04-28 04:39:52,349 INFO L226 Difference]: Without dead ends: 84 [2022-04-28 04:39:52,349 INFO L412 NwaCegarLoop]: 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-28 04:39:52,350 INFO L413 NwaCegarLoop]: 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-28 04:39:52,350 INFO L414 NwaCegarLoop]: 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-28 04:39:52,350 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-04-28 04:39:52,434 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 73. [2022-04-28 04:39:52,434 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:52,434 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-28 04:39:52,434 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-28 04:39:52,434 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-28 04:39:52,436 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:52,436 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-28 04:39:52,436 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-28 04:39:52,436 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:52,436 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:52,437 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-28 04:39:52,437 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-28 04:39:52,439 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:52,439 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-28 04:39:52,439 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-28 04:39:52,439 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:52,439 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:52,439 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:52,440 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:52,440 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-28 04:39:52,441 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-28 04:39:52,441 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 41 [2022-04-28 04:39:52,441 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:52,441 INFO L495 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-28 04:39:52,441 INFO L496 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-28 04:39:52,441 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-28 04:39:52,573 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-28 04:39:52,573 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-28 04:39:52,573 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-28 04:39:52,573 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:52,573 INFO L195 NwaCegarLoop]: 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-28 04:39:52,582 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-04-28 04:39:52,777 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable8 [2022-04-28 04:39:52,777 INFO L420 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:52,777 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:52,778 INFO L85 PathProgramCache]: Analyzing trace with hash 651179076, now seen corresponding path program 1 times [2022-04-28 04:39:52,778 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:52,778 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1071140468] [2022-04-28 04:39:52,778 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:52,778 INFO L85 PathProgramCache]: Analyzing trace with hash 651179076, now seen corresponding path program 2 times [2022-04-28 04:39:52,778 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:52,778 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1436840689] [2022-04-28 04:39:52,778 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:52,778 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:52,795 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:52,795 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [652119355] [2022-04-28 04:39:52,795 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:39:52,795 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:52,795 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:52,796 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:39:52,796 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-04-28 04:39:52,832 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:39:52,832 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:52,833 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 8 conjunts are in the unsatisfiable core [2022-04-28 04:39:52,841 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:52,842 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:39:53,435 INFO L272 TraceCheckUtils]: 0: Hoare triple {4935#true} call ULTIMATE.init(); {4935#true} is VALID [2022-04-28 04:39:53,435 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-28 04:39:53,435 INFO L290 TraceCheckUtils]: 2: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,435 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4935#true} {4935#true} #69#return; {4935#true} is VALID [2022-04-28 04:39:53,435 INFO L272 TraceCheckUtils]: 4: Hoare triple {4935#true} call #t~ret8 := main(); {4935#true} is VALID [2022-04-28 04:39:53,435 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-28 04:39:53,435 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-28 04:39:53,435 INFO L290 TraceCheckUtils]: 7: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,435 INFO L290 TraceCheckUtils]: 8: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,435 INFO L290 TraceCheckUtils]: 9: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,435 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4935#true} {4935#true} #61#return; {4935#true} is VALID [2022-04-28 04:39:53,435 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-28 04:39:53,436 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-28 04:39:53,436 INFO L290 TraceCheckUtils]: 13: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,436 INFO L290 TraceCheckUtils]: 14: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,436 INFO L290 TraceCheckUtils]: 15: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,436 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4935#true} {4935#true} #63#return; {4935#true} is VALID [2022-04-28 04:39:53,436 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-28 04:39:53,436 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-28 04:39:53,436 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-28 04:39:53,437 INFO L290 TraceCheckUtils]: 20: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,437 INFO L290 TraceCheckUtils]: 21: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,437 INFO L290 TraceCheckUtils]: 22: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,437 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-28 04:39:53,437 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-28 04:39:53,438 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-28 04:39:53,439 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-28 04:39:53,439 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-28 04:39:53,440 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-28 04:39:53,440 INFO L290 TraceCheckUtils]: 29: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,440 INFO L290 TraceCheckUtils]: 30: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,440 INFO L290 TraceCheckUtils]: 31: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,440 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-28 04:39:53,440 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-28 04:39:53,441 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-28 04:39:53,442 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-28 04:39:53,442 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-28 04:39:53,442 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-28 04:39:53,442 INFO L290 TraceCheckUtils]: 38: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,443 INFO L290 TraceCheckUtils]: 39: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,443 INFO L290 TraceCheckUtils]: 40: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,444 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-28 04:39:53,444 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-28 04:39:53,444 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-28 04:39:53,444 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-28 04:39:53,444 INFO L290 TraceCheckUtils]: 45: Hoare triple {4936#false} ~cond := #in~cond; {4936#false} is VALID [2022-04-28 04:39:53,444 INFO L290 TraceCheckUtils]: 46: Hoare triple {4936#false} assume 0 == ~cond; {4936#false} is VALID [2022-04-28 04:39:53,444 INFO L290 TraceCheckUtils]: 47: Hoare triple {4936#false} assume !false; {4936#false} is VALID [2022-04-28 04:39:53,445 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-28 04:39:53,445 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:53,677 INFO L290 TraceCheckUtils]: 47: Hoare triple {4936#false} assume !false; {4936#false} is VALID [2022-04-28 04:39:53,677 INFO L290 TraceCheckUtils]: 46: Hoare triple {4936#false} assume 0 == ~cond; {4936#false} is VALID [2022-04-28 04:39:53,678 INFO L290 TraceCheckUtils]: 45: Hoare triple {4936#false} ~cond := #in~cond; {4936#false} is VALID [2022-04-28 04:39:53,678 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-28 04:39:53,678 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-28 04:39:53,678 INFO L290 TraceCheckUtils]: 42: Hoare triple {5101#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {4936#false} is VALID [2022-04-28 04:39:53,679 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-28 04:39:53,679 INFO L290 TraceCheckUtils]: 40: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,679 INFO L290 TraceCheckUtils]: 39: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,679 INFO L290 TraceCheckUtils]: 38: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,679 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-28 04:39:53,679 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-28 04:39:53,680 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-28 04:39:53,680 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-28 04:39:53,681 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-28 04:39:53,681 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-28 04:39:53,681 INFO L290 TraceCheckUtils]: 31: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,681 INFO L290 TraceCheckUtils]: 30: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,681 INFO L290 TraceCheckUtils]: 29: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,681 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-28 04:39:53,682 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-28 04:39:53,682 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-28 04:39:53,684 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-28 04:39:53,695 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-28 04:39:53,695 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-28 04:39:53,695 INFO L290 TraceCheckUtils]: 22: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,695 INFO L290 TraceCheckUtils]: 21: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,695 INFO L290 TraceCheckUtils]: 20: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,695 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-28 04:39:53,696 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-28 04:39:53,696 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-28 04:39:53,697 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4935#true} {4935#true} #63#return; {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 15: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 14: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 13: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,697 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-28 04:39:53,697 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-28 04:39:53,697 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4935#true} {4935#true} #61#return; {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 9: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 8: Hoare triple {4935#true} assume !(0 == ~cond); {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 7: Hoare triple {4935#true} ~cond := #in~cond; {4935#true} is VALID [2022-04-28 04:39:53,697 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-28 04:39:53,697 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-28 04:39:53,697 INFO L272 TraceCheckUtils]: 4: Hoare triple {4935#true} call #t~ret8 := main(); {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4935#true} {4935#true} #69#return; {4935#true} is VALID [2022-04-28 04:39:53,697 INFO L290 TraceCheckUtils]: 2: Hoare triple {4935#true} assume true; {4935#true} is VALID [2022-04-28 04:39:53,697 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-28 04:39:53,697 INFO L272 TraceCheckUtils]: 0: Hoare triple {4935#true} call ULTIMATE.init(); {4935#true} is VALID [2022-04-28 04:39:53,698 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-28 04:39:53,698 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:53,698 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1436840689] [2022-04-28 04:39:53,698 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:53,698 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [652119355] [2022-04-28 04:39:53,698 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [652119355] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:53,698 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:53,698 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2022-04-28 04:39:53,698 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:53,698 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1071140468] [2022-04-28 04:39:53,698 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1071140468] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:53,698 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:53,698 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-28 04:39:53,698 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1036632524] [2022-04-28 04:39:53,698 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:53,699 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-28 04:39:53,699 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:53,699 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-28 04:39:53,725 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-28 04:39:53,726 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-28 04:39:53,726 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:53,726 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-28 04:39:53,726 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=93, Unknown=0, NotChecked=0, Total=132 [2022-04-28 04:39:53,727 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-28 04:39:54,075 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:54,075 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2022-04-28 04:39:54,075 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-28 04:39:54,075 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-28 04:39:54,076 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:54,076 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-28 04:39:54,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2022-04-28 04:39:54,077 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-28 04:39:54,077 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2022-04-28 04:39:54,077 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 59 transitions. [2022-04-28 04:39:54,118 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-28 04:39:54,119 INFO L225 Difference]: With dead ends: 87 [2022-04-28 04:39:54,119 INFO L226 Difference]: Without dead ends: 79 [2022-04-28 04:39:54,119 INFO L412 NwaCegarLoop]: 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-28 04:39:54,120 INFO L413 NwaCegarLoop]: 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-28 04:39:54,120 INFO L414 NwaCegarLoop]: 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-28 04:39:54,120 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-04-28 04:39:54,240 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 76. [2022-04-28 04:39:54,240 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:54,241 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-28 04:39:54,241 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-28 04:39:54,241 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-28 04:39:54,247 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:54,247 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-28 04:39:54,247 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-28 04:39:54,247 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:54,247 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:54,247 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-28 04:39:54,247 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-28 04:39:54,248 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:54,248 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-28 04:39:54,249 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-28 04:39:54,249 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:54,249 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:54,249 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:54,249 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:54,249 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-28 04:39:54,250 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 84 transitions. [2022-04-28 04:39:54,250 INFO L78 Accepts]: Start accepts. Automaton has 76 states and 84 transitions. Word has length 48 [2022-04-28 04:39:54,250 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:54,250 INFO L495 AbstractCegarLoop]: Abstraction has 76 states and 84 transitions. [2022-04-28 04:39:54,250 INFO L496 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-28 04:39:54,250 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 76 states and 84 transitions. [2022-04-28 04:39:54,379 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-28 04:39:54,380 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 84 transitions. [2022-04-28 04:39:54,380 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-28 04:39:54,380 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:54,380 INFO L195 NwaCegarLoop]: 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-28 04:39:54,396 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-28 04:39:54,580 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2022-04-28 04:39:54,581 INFO L420 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:54,581 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:54,581 INFO L85 PathProgramCache]: Analyzing trace with hash -1154259258, now seen corresponding path program 3 times [2022-04-28 04:39:54,581 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:54,581 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1352029128] [2022-04-28 04:39:54,581 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:54,581 INFO L85 PathProgramCache]: Analyzing trace with hash -1154259258, now seen corresponding path program 4 times [2022-04-28 04:39:54,581 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:54,582 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1172323479] [2022-04-28 04:39:54,582 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:54,582 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:54,592 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:54,592 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2141681] [2022-04-28 04:39:54,593 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:39:54,593 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:54,593 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:54,593 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:39:54,604 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-28 04:39:54,630 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:39:54,630 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:54,631 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 35 conjunts are in the unsatisfiable core [2022-04-28 04:39:54,641 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:54,642 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:39:55,138 INFO L272 TraceCheckUtils]: 0: Hoare triple {5718#true} call ULTIMATE.init(); {5718#true} is VALID [2022-04-28 04:39:55,138 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-28 04:39:55,138 INFO L290 TraceCheckUtils]: 2: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,138 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5718#true} {5718#true} #69#return; {5718#true} is VALID [2022-04-28 04:39:55,138 INFO L272 TraceCheckUtils]: 4: Hoare triple {5718#true} call #t~ret8 := main(); {5718#true} is VALID [2022-04-28 04:39:55,138 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-28 04:39:55,138 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-28 04:39:55,139 INFO L290 TraceCheckUtils]: 7: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L290 TraceCheckUtils]: 8: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L290 TraceCheckUtils]: 9: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5718#true} {5718#true} #61#return; {5718#true} is VALID [2022-04-28 04:39:55,139 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-28 04:39:55,139 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-28 04:39:55,139 INFO L290 TraceCheckUtils]: 13: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L290 TraceCheckUtils]: 14: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L290 TraceCheckUtils]: 15: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,139 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5718#true} {5718#true} #63#return; {5718#true} is VALID [2022-04-28 04:39:55,139 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-28 04:39:55,151 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-28 04:39:55,151 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-28 04:39:55,151 INFO L290 TraceCheckUtils]: 20: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,151 INFO L290 TraceCheckUtils]: 21: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,151 INFO L290 TraceCheckUtils]: 22: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,161 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-28 04:39:55,162 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-28 04:39:55,162 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-28 04:39:55,163 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-28 04:39:55,163 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-28 04:39:55,163 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-28 04:39:55,163 INFO L290 TraceCheckUtils]: 29: Hoare triple {5718#true} ~cond := #in~cond; {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:55,164 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-28 04:39:55,164 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-28 04:39:55,165 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-28 04:39:55,165 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-28 04:39:55,165 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-28 04:39:55,166 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-28 04:39:55,166 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-28 04:39:55,166 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-28 04:39:55,166 INFO L290 TraceCheckUtils]: 38: Hoare triple {5718#true} ~cond := #in~cond; {5813#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:55,167 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-28 04:39:55,167 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-28 04:39:55,168 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-28 04:39:55,169 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-28 04:39:55,169 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-28 04:39:55,170 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-28 04:39:55,171 INFO L290 TraceCheckUtils]: 45: Hoare triple {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5871#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:55,171 INFO L290 TraceCheckUtils]: 46: Hoare triple {5871#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5719#false} is VALID [2022-04-28 04:39:55,171 INFO L290 TraceCheckUtils]: 47: Hoare triple {5719#false} assume !false; {5719#false} is VALID [2022-04-28 04:39:55,171 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-28 04:39:55,171 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:39:55,728 INFO L290 TraceCheckUtils]: 47: Hoare triple {5719#false} assume !false; {5719#false} is VALID [2022-04-28 04:39:55,729 INFO L290 TraceCheckUtils]: 46: Hoare triple {5871#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5719#false} is VALID [2022-04-28 04:39:55,729 INFO L290 TraceCheckUtils]: 45: Hoare triple {5867#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5871#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:39:55,730 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-28 04:39:55,731 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-28 04:39:55,731 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-28 04:39:55,732 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-28 04:39:55,732 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-28 04:39:55,733 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-28 04:39:55,733 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-28 04:39:55,733 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-28 04:39:55,734 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-28 04:39:55,735 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-28 04:39:55,737 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-28 04:39:55,738 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-28 04:39:55,738 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {5718#true} {5718#true} #65#return; {5718#true} is VALID [2022-04-28 04:39:55,738 INFO L290 TraceCheckUtils]: 31: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 30: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 29: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,739 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-28 04:39:55,739 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-28 04:39:55,739 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-28 04:39:55,739 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-28 04:39:55,739 INFO L290 TraceCheckUtils]: 24: Hoare triple {5718#true} assume !!(~x~0 <= ~X~0); {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {5718#true} {5718#true} #65#return; {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 22: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 21: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 20: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,739 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-28 04:39:55,739 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-28 04:39:55,739 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-28 04:39:55,739 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5718#true} {5718#true} #63#return; {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 15: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 14: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,739 INFO L290 TraceCheckUtils]: 13: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,740 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-28 04:39:55,740 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-28 04:39:55,740 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5718#true} {5718#true} #61#return; {5718#true} is VALID [2022-04-28 04:39:55,740 INFO L290 TraceCheckUtils]: 9: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,740 INFO L290 TraceCheckUtils]: 8: Hoare triple {5718#true} assume !(0 == ~cond); {5718#true} is VALID [2022-04-28 04:39:55,740 INFO L290 TraceCheckUtils]: 7: Hoare triple {5718#true} ~cond := #in~cond; {5718#true} is VALID [2022-04-28 04:39:55,740 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-28 04:39:55,740 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-28 04:39:55,740 INFO L272 TraceCheckUtils]: 4: Hoare triple {5718#true} call #t~ret8 := main(); {5718#true} is VALID [2022-04-28 04:39:55,740 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5718#true} {5718#true} #69#return; {5718#true} is VALID [2022-04-28 04:39:55,740 INFO L290 TraceCheckUtils]: 2: Hoare triple {5718#true} assume true; {5718#true} is VALID [2022-04-28 04:39:55,740 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-28 04:39:55,740 INFO L272 TraceCheckUtils]: 0: Hoare triple {5718#true} call ULTIMATE.init(); {5718#true} is VALID [2022-04-28 04:39:55,740 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-28 04:39:55,741 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:39:55,741 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1172323479] [2022-04-28 04:39:55,741 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:39:55,741 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2141681] [2022-04-28 04:39:55,741 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2141681] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:39:55,741 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:39:55,741 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 13] total 24 [2022-04-28 04:39:55,741 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:39:55,741 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1352029128] [2022-04-28 04:39:55,741 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1352029128] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:39:55,741 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:39:55,741 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-28 04:39:55,741 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2044181723] [2022-04-28 04:39:55,741 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:39:55,742 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-28 04:39:55,742 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:39:55,742 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-28 04:39:55,773 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-28 04:39:55,773 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-28 04:39:55,773 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:55,773 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-28 04:39:55,773 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=77, Invalid=475, Unknown=0, NotChecked=0, Total=552 [2022-04-28 04:39:55,774 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-28 04:39:56,654 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:56,654 INFO L93 Difference]: Finished difference Result 87 states and 96 transitions. [2022-04-28 04:39:56,655 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-28 04:39:56,655 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-28 04:39:56,655 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:39:56,655 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-28 04:39:56,656 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 61 transitions. [2022-04-28 04:39:56,656 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-28 04:39:56,656 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 61 transitions. [2022-04-28 04:39:56,656 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 61 transitions. [2022-04-28 04:39:56,701 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:39:56,702 INFO L225 Difference]: With dead ends: 87 [2022-04-28 04:39:56,702 INFO L226 Difference]: Without dead ends: 79 [2022-04-28 04:39:56,703 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 100 GetRequests, 72 SyntacticMatches, 1 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 118 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=119, Invalid=693, Unknown=0, NotChecked=0, Total=812 [2022-04-28 04:39:56,703 INFO L413 NwaCegarLoop]: 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-28 04:39:56,703 INFO L414 NwaCegarLoop]: 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-28 04:39:56,704 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 79 states. [2022-04-28 04:39:56,807 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 79 to 73. [2022-04-28 04:39:56,807 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:39:56,807 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-28 04:39:56,808 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-28 04:39:56,808 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-28 04:39:56,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:56,809 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-28 04:39:56,809 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-28 04:39:56,810 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:56,810 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:56,810 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-28 04:39:56,810 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-28 04:39:56,811 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:39:56,811 INFO L93 Difference]: Finished difference Result 79 states and 88 transitions. [2022-04-28 04:39:56,811 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 88 transitions. [2022-04-28 04:39:56,811 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:39:56,811 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:39:56,812 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:39:56,812 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:39:56,812 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-28 04:39:56,813 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 80 transitions. [2022-04-28 04:39:56,813 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 80 transitions. Word has length 48 [2022-04-28 04:39:56,813 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:39:56,813 INFO L495 AbstractCegarLoop]: Abstraction has 73 states and 80 transitions. [2022-04-28 04:39:56,813 INFO L496 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-28 04:39:56,813 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 73 states and 80 transitions. [2022-04-28 04:39:56,949 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-28 04:39:56,949 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 80 transitions. [2022-04-28 04:39:56,950 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:39:56,950 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:39:56,950 INFO L195 NwaCegarLoop]: 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-28 04:39:56,965 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Forceful destruction successful, exit code 0 [2022-04-28 04:39:57,150 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable10 [2022-04-28 04:39:57,151 INFO L420 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:39:57,152 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:39:57,152 INFO L85 PathProgramCache]: Analyzing trace with hash -463038031, now seen corresponding path program 5 times [2022-04-28 04:39:57,152 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:39:57,152 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1282508179] [2022-04-28 04:39:57,152 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:39:57,152 INFO L85 PathProgramCache]: Analyzing trace with hash -463038031, now seen corresponding path program 6 times [2022-04-28 04:39:57,152 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:39:57,153 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1618328221] [2022-04-28 04:39:57,153 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:39:57,153 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:39:57,163 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:39:57,164 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [923922097] [2022-04-28 04:39:57,164 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:39:57,164 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:39:57,164 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:39:57,165 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-28 04:39:57,165 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-28 04:39:57,201 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-28 04:39:57,201 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:39:57,201 INFO L263 TraceCheckSpWp]: Trace formula consists of 141 conjuncts, 32 conjunts are in the unsatisfiable core [2022-04-28 04:39:57,211 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:39:57,212 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:40:07,521 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:40:12,013 INFO L272 TraceCheckUtils]: 0: Hoare triple {6517#true} call ULTIMATE.init(); {6517#true} is VALID [2022-04-28 04:40:12,014 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-28 04:40:12,014 INFO L290 TraceCheckUtils]: 2: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6517#true} {6517#true} #69#return; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L272 TraceCheckUtils]: 4: Hoare triple {6517#true} call #t~ret8 := main(); {6517#true} is VALID [2022-04-28 04:40:12,014 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-28 04:40:12,014 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-28 04:40:12,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L290 TraceCheckUtils]: 8: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L290 TraceCheckUtils]: 9: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6517#true} {6517#true} #61#return; {6517#true} is VALID [2022-04-28 04:40:12,014 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-28 04:40:12,014 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-28 04:40:12,014 INFO L290 TraceCheckUtils]: 13: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L290 TraceCheckUtils]: 14: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L290 TraceCheckUtils]: 15: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:12,014 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6517#true} {6517#true} #63#return; {6517#true} is VALID [2022-04-28 04:40:12,015 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-28 04:40:12,015 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-28 04:40:12,015 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-28 04:40:12,015 INFO L290 TraceCheckUtils]: 20: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:12,015 INFO L290 TraceCheckUtils]: 21: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:12,015 INFO L290 TraceCheckUtils]: 22: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:12,016 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-28 04:40:12,016 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-28 04:40:12,017 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-28 04:40:12,017 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-28 04:40:12,017 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-28 04:40:12,017 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-28 04:40:12,018 INFO L290 TraceCheckUtils]: 29: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:12,018 INFO L290 TraceCheckUtils]: 30: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:12,018 INFO L290 TraceCheckUtils]: 31: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:12,018 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-28 04:40:12,018 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-28 04:40:12,019 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-28 04:40:12,019 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-28 04:40:12,020 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-28 04:40:12,020 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-28 04:40:12,020 INFO L290 TraceCheckUtils]: 38: Hoare triple {6517#true} ~cond := #in~cond; {6640#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:12,020 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-28 04:40:12,021 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-28 04:40:12,021 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-28 04:40:12,022 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-28 04:40:12,023 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-28 04:40:12,024 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-28 04:40:12,026 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-28 04:40:12,028 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-28 04:40:12,028 INFO L290 TraceCheckUtils]: 47: Hoare triple {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6674#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:12,029 INFO L290 TraceCheckUtils]: 48: Hoare triple {6674#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6518#false} is VALID [2022-04-28 04:40:12,029 INFO L290 TraceCheckUtils]: 49: Hoare triple {6518#false} assume !false; {6518#false} is VALID [2022-04-28 04:40:12,029 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-28 04:40:12,029 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:40:16,365 INFO L290 TraceCheckUtils]: 49: Hoare triple {6518#false} assume !false; {6518#false} is VALID [2022-04-28 04:40:16,365 INFO L290 TraceCheckUtils]: 48: Hoare triple {6674#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6518#false} is VALID [2022-04-28 04:40:16,365 INFO L290 TraceCheckUtils]: 47: Hoare triple {6670#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6674#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:16,366 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-28 04:40:16,367 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-28 04:40:16,385 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-28 04:40:16,385 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-28 04:40:16,386 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-28 04:40:16,386 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-28 04:40:16,387 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-28 04:40:16,387 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-28 04:40:16,387 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-28 04:40:16,387 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-28 04:40:16,388 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-28 04:40:16,388 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-28 04:40:16,388 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-28 04:40:16,388 INFO L290 TraceCheckUtils]: 33: Hoare triple {6517#true} assume !!(~x~0 <= ~X~0); {6517#true} is VALID [2022-04-28 04:40:16,388 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {6517#true} {6517#true} #65#return; {6517#true} is VALID [2022-04-28 04:40:16,388 INFO L290 TraceCheckUtils]: 31: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:16,388 INFO L290 TraceCheckUtils]: 30: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:16,388 INFO L290 TraceCheckUtils]: 29: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:16,388 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-28 04:40:16,388 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-28 04:40:16,389 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-28 04:40:16,389 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-28 04:40:16,389 INFO L290 TraceCheckUtils]: 24: Hoare triple {6517#true} assume !!(~x~0 <= ~X~0); {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {6517#true} {6517#true} #65#return; {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 22: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 21: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 20: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:16,389 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-28 04:40:16,389 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-28 04:40:16,389 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-28 04:40:16,389 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6517#true} {6517#true} #63#return; {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 15: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 14: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 13: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:16,389 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-28 04:40:16,389 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-28 04:40:16,389 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6517#true} {6517#true} #61#return; {6517#true} is VALID [2022-04-28 04:40:16,389 INFO L290 TraceCheckUtils]: 9: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:16,390 INFO L290 TraceCheckUtils]: 8: Hoare triple {6517#true} assume !(0 == ~cond); {6517#true} is VALID [2022-04-28 04:40:16,390 INFO L290 TraceCheckUtils]: 7: Hoare triple {6517#true} ~cond := #in~cond; {6517#true} is VALID [2022-04-28 04:40:16,390 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-28 04:40:16,390 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-28 04:40:16,390 INFO L272 TraceCheckUtils]: 4: Hoare triple {6517#true} call #t~ret8 := main(); {6517#true} is VALID [2022-04-28 04:40:16,390 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6517#true} {6517#true} #69#return; {6517#true} is VALID [2022-04-28 04:40:16,390 INFO L290 TraceCheckUtils]: 2: Hoare triple {6517#true} assume true; {6517#true} is VALID [2022-04-28 04:40:16,390 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-28 04:40:16,390 INFO L272 TraceCheckUtils]: 0: Hoare triple {6517#true} call ULTIMATE.init(); {6517#true} is VALID [2022-04-28 04:40:16,390 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-28 04:40:16,390 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:40:16,390 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1618328221] [2022-04-28 04:40:16,390 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:40:16,390 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [923922097] [2022-04-28 04:40:16,390 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [923922097] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:40:16,391 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:40:16,391 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 10] total 19 [2022-04-28 04:40:16,391 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:40:16,391 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1282508179] [2022-04-28 04:40:16,391 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1282508179] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:40:16,391 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:40:16,391 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 04:40:16,391 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1500572647] [2022-04-28 04:40:16,391 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:40:16,391 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-28 04:40:16,392 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:40:16,392 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-28 04:40:16,431 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-28 04:40:16,431 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 04:40:16,431 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:40:16,432 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 04:40:16,432 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=49, Invalid=293, Unknown=0, NotChecked=0, Total=342 [2022-04-28 04:40:16,432 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-28 04:40:17,745 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:40:17,745 INFO L93 Difference]: Finished difference Result 88 states and 98 transitions. [2022-04-28 04:40:17,745 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-28 04:40:17,745 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-28 04:40:17,745 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:40:17,745 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-28 04:40:17,746 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 65 transitions. [2022-04-28 04:40:17,746 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-28 04:40:17,747 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 65 transitions. [2022-04-28 04:40:17,747 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 65 transitions. [2022-04-28 04:40:17,802 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:40:17,803 INFO L225 Difference]: With dead ends: 88 [2022-04-28 04:40:17,803 INFO L226 Difference]: Without dead ends: 84 [2022-04-28 04:40:17,803 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 80 SyntacticMatches, 2 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=77, Invalid=429, Unknown=0, NotChecked=0, Total=506 [2022-04-28 04:40:17,804 INFO L413 NwaCegarLoop]: 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-28 04:40:17,807 INFO L414 NwaCegarLoop]: 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-28 04:40:17,808 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2022-04-28 04:40:17,916 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 75. [2022-04-28 04:40:17,916 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:40:17,916 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-28 04:40:17,917 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-28 04:40:17,917 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-28 04:40:17,918 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:40:17,918 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-28 04:40:17,918 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-28 04:40:17,918 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:40:17,918 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:40:17,918 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-28 04:40:17,919 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-28 04:40:17,920 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:40:17,920 INFO L93 Difference]: Finished difference Result 84 states and 93 transitions. [2022-04-28 04:40:17,920 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 93 transitions. [2022-04-28 04:40:17,920 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:40:17,920 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:40:17,920 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:40:17,920 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:40:17,920 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-28 04:40:17,921 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 83 transitions. [2022-04-28 04:40:17,921 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 83 transitions. Word has length 50 [2022-04-28 04:40:17,921 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:40:17,921 INFO L495 AbstractCegarLoop]: Abstraction has 75 states and 83 transitions. [2022-04-28 04:40:17,921 INFO L496 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-28 04:40:17,921 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 75 states and 83 transitions. [2022-04-28 04:40:18,068 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-28 04:40:18,068 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 83 transitions. [2022-04-28 04:40:18,069 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:40:18,069 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:40:18,069 INFO L195 NwaCegarLoop]: 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-28 04:40:18,085 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-28 04:40:18,269 WARN L477 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-28 04:40:18,269 INFO L420 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:40:18,270 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:40:18,270 INFO L85 PathProgramCache]: Analyzing trace with hash 1311969331, now seen corresponding path program 5 times [2022-04-28 04:40:18,270 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:40:18,270 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1216580540] [2022-04-28 04:40:18,270 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:40:18,270 INFO L85 PathProgramCache]: Analyzing trace with hash 1311969331, now seen corresponding path program 6 times [2022-04-28 04:40:18,270 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:40:18,270 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [90560481] [2022-04-28 04:40:18,270 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:40:18,271 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:40:18,280 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:40:18,281 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1671933365] [2022-04-28 04:40:18,281 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:40:18,281 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:40:18,281 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:40:18,282 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-28 04:40:18,282 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-28 04:40:18,320 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-28 04:40:18,320 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:40:18,321 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 45 conjunts are in the unsatisfiable core [2022-04-28 04:40:18,333 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:40:18,334 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:40:44,017 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:40:49,756 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:40:57,126 INFO L272 TraceCheckUtils]: 0: Hoare triple {7337#true} call ULTIMATE.init(); {7337#true} is VALID [2022-04-28 04:40:57,126 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-28 04:40:57,126 INFO L290 TraceCheckUtils]: 2: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7337#true} {7337#true} #69#return; {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L272 TraceCheckUtils]: 4: Hoare triple {7337#true} call #t~ret8 := main(); {7337#true} is VALID [2022-04-28 04:40:57,126 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-28 04:40:57,126 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-28 04:40:57,126 INFO L290 TraceCheckUtils]: 7: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L290 TraceCheckUtils]: 8: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L290 TraceCheckUtils]: 9: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7337#true} {7337#true} #61#return; {7337#true} is VALID [2022-04-28 04:40:57,126 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-28 04:40:57,126 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-28 04:40:57,126 INFO L290 TraceCheckUtils]: 13: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:40:57,126 INFO L290 TraceCheckUtils]: 14: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:40:57,127 INFO L290 TraceCheckUtils]: 15: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:40:57,127 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7337#true} {7337#true} #63#return; {7337#true} is VALID [2022-04-28 04:40:57,127 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-28 04:40:57,127 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-28 04:40:57,127 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-28 04:40:57,127 INFO L290 TraceCheckUtils]: 20: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:40:57,127 INFO L290 TraceCheckUtils]: 21: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:40:57,128 INFO L290 TraceCheckUtils]: 22: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:40:57,128 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-28 04:40:57,128 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-28 04:40:57,129 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-28 04:40:57,129 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-28 04:40:59,132 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-28 04:40:59,132 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-28 04:40:59,132 INFO L290 TraceCheckUtils]: 29: Hoare triple {7337#true} ~cond := #in~cond; {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:59,132 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-28 04:40:59,133 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-28 04:40:59,133 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-28 04:40:59,134 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-28 04:40:59,134 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-28 04:40:59,135 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-28 04:40:59,135 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-28 04:40:59,135 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-28 04:40:59,136 INFO L290 TraceCheckUtils]: 38: Hoare triple {7337#true} ~cond := #in~cond; {7432#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:59,136 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-28 04:40:59,136 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-28 04:40:59,137 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-28 04:40:59,138 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-28 04:40:59,139 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-28 04:40:59,144 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-28 04:40:59,148 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-28 04:40:59,150 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-28 04:40:59,151 INFO L290 TraceCheckUtils]: 47: Hoare triple {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7495#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:40:59,151 INFO L290 TraceCheckUtils]: 48: Hoare triple {7495#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7338#false} is VALID [2022-04-28 04:40:59,151 INFO L290 TraceCheckUtils]: 49: Hoare triple {7338#false} assume !false; {7338#false} is VALID [2022-04-28 04:40:59,151 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-28 04:40:59,152 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:41:03,625 INFO L290 TraceCheckUtils]: 49: Hoare triple {7338#false} assume !false; {7338#false} is VALID [2022-04-28 04:41:03,625 INFO L290 TraceCheckUtils]: 48: Hoare triple {7495#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7338#false} is VALID [2022-04-28 04:41:03,626 INFO L290 TraceCheckUtils]: 47: Hoare triple {7491#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7495#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:41:03,626 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-28 04:41:03,627 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-28 04:41:03,643 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-28 04:41:03,644 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-28 04:41:03,645 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-28 04:41:03,646 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-28 04:41:03,646 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-28 04:41:03,646 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-28 04:41:03,646 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-28 04:41:03,646 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-28 04:41:03,647 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-28 04:41:03,647 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-28 04:41:03,647 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-28 04:41:03,647 INFO L290 TraceCheckUtils]: 33: Hoare triple {7337#true} assume !!(~x~0 <= ~X~0); {7337#true} is VALID [2022-04-28 04:41:03,647 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7337#true} {7337#true} #65#return; {7337#true} is VALID [2022-04-28 04:41:03,647 INFO L290 TraceCheckUtils]: 31: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 30: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 29: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:41:03,648 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-28 04:41:03,648 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-28 04:41:03,648 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-28 04:41:03,648 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-28 04:41:03,648 INFO L290 TraceCheckUtils]: 24: Hoare triple {7337#true} assume !!(~x~0 <= ~X~0); {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {7337#true} {7337#true} #65#return; {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 22: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 21: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 20: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:41:03,648 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-28 04:41:03,648 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-28 04:41:03,648 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-28 04:41:03,648 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7337#true} {7337#true} #63#return; {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 15: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 14: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:41:03,648 INFO L290 TraceCheckUtils]: 13: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:41:03,649 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-28 04:41:03,649 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-28 04:41:03,649 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7337#true} {7337#true} #61#return; {7337#true} is VALID [2022-04-28 04:41:03,649 INFO L290 TraceCheckUtils]: 9: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:41:03,649 INFO L290 TraceCheckUtils]: 8: Hoare triple {7337#true} assume !(0 == ~cond); {7337#true} is VALID [2022-04-28 04:41:03,649 INFO L290 TraceCheckUtils]: 7: Hoare triple {7337#true} ~cond := #in~cond; {7337#true} is VALID [2022-04-28 04:41:03,649 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-28 04:41:03,649 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-28 04:41:03,649 INFO L272 TraceCheckUtils]: 4: Hoare triple {7337#true} call #t~ret8 := main(); {7337#true} is VALID [2022-04-28 04:41:03,649 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7337#true} {7337#true} #69#return; {7337#true} is VALID [2022-04-28 04:41:03,649 INFO L290 TraceCheckUtils]: 2: Hoare triple {7337#true} assume true; {7337#true} is VALID [2022-04-28 04:41:03,649 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-28 04:41:03,649 INFO L272 TraceCheckUtils]: 0: Hoare triple {7337#true} call ULTIMATE.init(); {7337#true} is VALID [2022-04-28 04:41:03,649 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-28 04:41:03,650 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:41:03,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [90560481] [2022-04-28 04:41:03,650 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:41:03,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1671933365] [2022-04-28 04:41:03,650 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1671933365] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:41:03,650 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:41:03,650 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 10] total 20 [2022-04-28 04:41:03,650 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:41:03,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1216580540] [2022-04-28 04:41:03,650 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1216580540] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:41:03,650 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:41:03,650 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-28 04:41:03,650 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [748876408] [2022-04-28 04:41:03,650 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:41:03,651 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-28 04:41:03,651 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:41:03,651 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-28 04:41:05,706 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-28 04:41:05,706 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-28 04:41:05,706 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:41:05,706 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-28 04:41:05,706 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=328, Unknown=0, NotChecked=0, Total=380 [2022-04-28 04:41:05,707 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-28 04:41:07,779 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:41:07,779 INFO L93 Difference]: Finished difference Result 88 states and 98 transitions. [2022-04-28 04:41:07,779 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:41:07,780 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-28 04:41:07,781 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:41:07,781 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-28 04:41:07,783 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-28 04:41:07,783 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-28 04:41:07,784 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-28 04:41:07,784 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 65 transitions. [2022-04-28 04:41:09,846 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-28 04:41:09,847 INFO L225 Difference]: With dead ends: 88 [2022-04-28 04:41:09,847 INFO L226 Difference]: Without dead ends: 86 [2022-04-28 04:41:09,847 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 78 SyntacticMatches, 3 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 79 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=80, Invalid=472, Unknown=0, NotChecked=0, Total=552 [2022-04-28 04:41:09,848 INFO L413 NwaCegarLoop]: 29 mSDtfsCounter, 19 mSDsluCounter, 174 mSDsCounter, 0 mSdLazyCounter, 386 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s 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, 0.7s IncrementalHoareTripleChecker+Time [2022-04-28 04:41:09,848 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [21 Valid, 203 Invalid, 391 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 386 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-04-28 04:41:09,848 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2022-04-28 04:41:09,959 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 82. [2022-04-28 04:41:09,960 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:41:09,960 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-28 04:41:09,960 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-28 04:41:09,960 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-28 04:41:09,961 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:41:09,961 INFO L93 Difference]: Finished difference Result 86 states and 96 transitions. [2022-04-28 04:41:09,961 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 96 transitions. [2022-04-28 04:41:09,962 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:41:09,962 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:41:09,962 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-28 04:41:09,962 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-28 04:41:09,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:41:09,963 INFO L93 Difference]: Finished difference Result 86 states and 96 transitions. [2022-04-28 04:41:09,963 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 96 transitions. [2022-04-28 04:41:09,963 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:41:09,963 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:41:09,963 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:41:09,963 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:41:09,964 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-28 04:41:09,965 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 90 transitions. [2022-04-28 04:41:09,965 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 90 transitions. Word has length 50 [2022-04-28 04:41:09,965 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:41:09,965 INFO L495 AbstractCegarLoop]: Abstraction has 82 states and 90 transitions. [2022-04-28 04:41:09,965 INFO L496 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-28 04:41:09,965 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 82 states and 90 transitions. [2022-04-28 04:41:10,131 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 90 edges. 90 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:41:10,131 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 90 transitions. [2022-04-28 04:41:10,132 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:41:10,132 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:41:10,132 INFO L195 NwaCegarLoop]: 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-28 04:41:10,148 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Ended with exit code 0 [2022-04-28 04:41:10,341 WARN L477 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-28 04:41:10,341 INFO L420 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:41:10,342 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:41:10,342 INFO L85 PathProgramCache]: Analyzing trace with hash -1484106385, now seen corresponding path program 7 times [2022-04-28 04:41:10,342 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:41:10,342 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [494951036] [2022-04-28 04:41:10,342 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:41:10,342 INFO L85 PathProgramCache]: Analyzing trace with hash -1484106385, now seen corresponding path program 8 times [2022-04-28 04:41:10,342 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:41:10,342 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1529776287] [2022-04-28 04:41:10,342 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:41:10,342 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:41:10,356 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:41:10,356 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1249676880] [2022-04-28 04:41:10,356 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:41:10,356 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:41:10,356 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:41:10,357 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-28 04:41:10,357 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-28 04:41:10,395 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:41:10,395 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:41:10,396 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 41 conjunts are in the unsatisfiable core [2022-04-28 04:41:10,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:41:10,419 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:41:27,033 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:41:33,079 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:41:44,693 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:41:56,021 INFO L272 TraceCheckUtils]: 0: Hoare triple {8176#true} call ULTIMATE.init(); {8176#true} is VALID [2022-04-28 04:41:56,021 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-28 04:41:56,021 INFO L290 TraceCheckUtils]: 2: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:41:56,021 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8176#true} {8176#true} #69#return; {8176#true} is VALID [2022-04-28 04:41:56,021 INFO L272 TraceCheckUtils]: 4: Hoare triple {8176#true} call #t~ret8 := main(); {8176#true} is VALID [2022-04-28 04:41:56,021 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-28 04:41:56,021 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-28 04:41:56,021 INFO L290 TraceCheckUtils]: 7: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:41:56,021 INFO L290 TraceCheckUtils]: 8: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:41:56,021 INFO L290 TraceCheckUtils]: 9: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:41:56,021 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8176#true} {8176#true} #61#return; {8176#true} is VALID [2022-04-28 04:41:56,021 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-28 04:41:56,021 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-28 04:41:56,022 INFO L290 TraceCheckUtils]: 13: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:41:56,022 INFO L290 TraceCheckUtils]: 14: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:41:56,022 INFO L290 TraceCheckUtils]: 15: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:41:56,022 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8176#true} {8176#true} #63#return; {8176#true} is VALID [2022-04-28 04:41:56,022 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-28 04:41:56,022 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-28 04:41:56,022 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-28 04:41:56,023 INFO L290 TraceCheckUtils]: 20: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:41:56,023 INFO L290 TraceCheckUtils]: 21: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:41:56,023 INFO L290 TraceCheckUtils]: 22: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:41:56,023 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-28 04:41:56,023 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-28 04:41:56,024 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-28 04:41:56,024 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-28 04:41:56,025 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-28 04:41:56,025 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-28 04:41:56,025 INFO L290 TraceCheckUtils]: 29: Hoare triple {8176#true} ~cond := #in~cond; {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:41:56,026 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-28 04:41:56,026 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-28 04:41:56,027 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-28 04:41:56,027 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-28 04:41:56,027 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-28 04:41:56,028 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-28 04:41:56,028 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-28 04:41:56,028 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-28 04:41:56,028 INFO L290 TraceCheckUtils]: 38: Hoare triple {8176#true} ~cond := #in~cond; {8271#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:41:56,029 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-28 04:41:56,029 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-28 04:41:56,030 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-28 04:41:56,031 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-28 04:41:56,031 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-28 04:41:56,033 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-28 04:41:58,035 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-28 04:41:58,037 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-28 04:41:58,038 INFO L290 TraceCheckUtils]: 47: Hoare triple {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8335#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:41:58,038 INFO L290 TraceCheckUtils]: 48: Hoare triple {8335#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8177#false} is VALID [2022-04-28 04:41:58,038 INFO L290 TraceCheckUtils]: 49: Hoare triple {8177#false} assume !false; {8177#false} is VALID [2022-04-28 04:41:58,038 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-28 04:41:58,038 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:42:01,913 INFO L290 TraceCheckUtils]: 49: Hoare triple {8177#false} assume !false; {8177#false} is VALID [2022-04-28 04:42:01,914 INFO L290 TraceCheckUtils]: 48: Hoare triple {8335#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8177#false} is VALID [2022-04-28 04:42:01,914 INFO L290 TraceCheckUtils]: 47: Hoare triple {8331#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8335#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:42:01,915 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-28 04:42:01,916 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-28 04:42:01,917 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-28 04:42:01,918 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-28 04:42:01,918 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-28 04:42:01,919 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-28 04:42:01,919 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-28 04:42:01,919 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-28 04:42:01,920 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-28 04:42:01,920 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-28 04:42:01,921 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-28 04:42:01,921 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-28 04:42:01,921 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-28 04:42:01,921 INFO L290 TraceCheckUtils]: 33: Hoare triple {8176#true} assume !!(~x~0 <= ~X~0); {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {8176#true} {8176#true} #65#return; {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 31: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 30: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 29: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:42:01,921 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-28 04:42:01,921 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-28 04:42:01,921 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-28 04:42:01,921 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-28 04:42:01,921 INFO L290 TraceCheckUtils]: 24: Hoare triple {8176#true} assume !!(~x~0 <= ~X~0); {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {8176#true} {8176#true} #65#return; {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 22: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 21: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:42:01,921 INFO L290 TraceCheckUtils]: 20: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:42:01,922 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-28 04:42:01,922 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-28 04:42:01,922 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-28 04:42:01,922 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8176#true} {8176#true} #63#return; {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 15: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 14: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 13: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:42:01,922 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-28 04:42:01,922 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-28 04:42:01,922 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8176#true} {8176#true} #61#return; {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 9: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 8: Hoare triple {8176#true} assume !(0 == ~cond); {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L290 TraceCheckUtils]: 7: Hoare triple {8176#true} ~cond := #in~cond; {8176#true} is VALID [2022-04-28 04:42:01,922 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-28 04:42:01,922 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-28 04:42:01,922 INFO L272 TraceCheckUtils]: 4: Hoare triple {8176#true} call #t~ret8 := main(); {8176#true} is VALID [2022-04-28 04:42:01,922 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8176#true} {8176#true} #69#return; {8176#true} is VALID [2022-04-28 04:42:01,923 INFO L290 TraceCheckUtils]: 2: Hoare triple {8176#true} assume true; {8176#true} is VALID [2022-04-28 04:42:01,923 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-28 04:42:01,923 INFO L272 TraceCheckUtils]: 0: Hoare triple {8176#true} call ULTIMATE.init(); {8176#true} is VALID [2022-04-28 04:42:01,923 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-28 04:42:01,923 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:42:01,923 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1529776287] [2022-04-28 04:42:01,923 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:42:01,923 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1249676880] [2022-04-28 04:42:01,923 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1249676880] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:42:01,923 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:42:01,923 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 10] total 21 [2022-04-28 04:42:01,923 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:42:01,924 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [494951036] [2022-04-28 04:42:01,924 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [494951036] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:42:01,924 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:42:01,924 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-28 04:42:01,924 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2095173481] [2022-04-28 04:42:01,924 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:42:01,924 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-28 04:42:01,924 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:42:01,924 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-28 04:42:03,960 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-28 04:42:03,960 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-28 04:42:03,960 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:03,961 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-28 04:42:03,961 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=55, Invalid=365, Unknown=0, NotChecked=0, Total=420 [2022-04-28 04:42:03,961 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-28 04:42:10,262 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.86s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-28 04:42:16,552 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-28 04:42:23,974 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:23,974 INFO L93 Difference]: Finished difference Result 100 states and 112 transitions. [2022-04-28 04:42:23,974 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:42:23,974 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-28 04:42:23,974 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:42:23,974 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-28 04:42:23,975 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-28 04:42:23,975 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-28 04:42:23,976 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 65 transitions. [2022-04-28 04:42:23,976 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 65 transitions. [2022-04-28 04:42:26,037 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-28 04:42:26,038 INFO L225 Difference]: With dead ends: 100 [2022-04-28 04:42:26,038 INFO L226 Difference]: Without dead ends: 98 [2022-04-28 04:42:26,038 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 104 GetRequests, 78 SyntacticMatches, 2 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 79 ImplicationChecksByTransitivity, 4.0s TimeCoverageRelationStatistics Valid=88, Invalid=561, Unknown=1, NotChecked=0, Total=650 [2022-04-28 04:42:26,039 INFO L413 NwaCegarLoop]: 26 mSDtfsCounter, 22 mSDsluCounter, 165 mSDsCounter, 0 mSdLazyCounter, 367 mSolverCounterSat, 8 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 6.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 191 SdHoareTripleChecker+Invalid, 376 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 367 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 6.6s IncrementalHoareTripleChecker+Time [2022-04-28 04:42:26,039 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [23 Valid, 191 Invalid, 376 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 367 Invalid, 1 Unknown, 0 Unchecked, 6.6s Time] [2022-04-28 04:42:26,039 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 98 states. [2022-04-28 04:42:26,162 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 98 to 87. [2022-04-28 04:42:26,162 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:42:26,162 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-28 04:42:26,162 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-28 04:42:26,162 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-28 04:42:26,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:26,164 INFO L93 Difference]: Finished difference Result 98 states and 110 transitions. [2022-04-28 04:42:26,164 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 110 transitions. [2022-04-28 04:42:26,164 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:26,164 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:26,164 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-28 04:42:26,164 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-28 04:42:26,166 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:26,166 INFO L93 Difference]: Finished difference Result 98 states and 110 transitions. [2022-04-28 04:42:26,166 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 110 transitions. [2022-04-28 04:42:26,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:26,166 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:26,166 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:42:26,166 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:42:26,166 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-28 04:42:26,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 87 states to 87 states and 97 transitions. [2022-04-28 04:42:26,167 INFO L78 Accepts]: Start accepts. Automaton has 87 states and 97 transitions. Word has length 50 [2022-04-28 04:42:26,167 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:42:26,168 INFO L495 AbstractCegarLoop]: Abstraction has 87 states and 97 transitions. [2022-04-28 04:42:26,168 INFO L496 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-28 04:42:26,168 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 87 states and 97 transitions. [2022-04-28 04:42:28,377 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-28 04:42:28,377 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 97 transitions. [2022-04-28 04:42:28,377 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:42:28,377 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:42:28,378 INFO L195 NwaCegarLoop]: 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-28 04:42:28,393 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-28 04:42:28,578 WARN L477 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-28 04:42:28,578 INFO L420 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:42:28,578 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:42:28,578 INFO L85 PathProgramCache]: Analyzing trace with hash 290900977, now seen corresponding path program 9 times [2022-04-28 04:42:28,578 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:28,578 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1029226448] [2022-04-28 04:42:28,579 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:42:28,579 INFO L85 PathProgramCache]: Analyzing trace with hash 290900977, now seen corresponding path program 10 times [2022-04-28 04:42:28,579 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:42:28,579 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [595546284] [2022-04-28 04:42:28,579 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:42:28,579 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:42:28,587 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:42:28,587 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [520960369] [2022-04-28 04:42:28,587 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:42:28,587 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:42:28,587 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:42:28,588 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-28 04:42:28,589 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-28 04:42:28,621 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:42:28,621 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:42:28,622 INFO L263 TraceCheckSpWp]: Trace formula consists of 106 conjuncts, 5 conjunts are in the unsatisfiable core [2022-04-28 04:42:28,629 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:42:28,630 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:42:28,902 INFO L272 TraceCheckUtils]: 0: Hoare triple {9076#true} call ULTIMATE.init(); {9076#true} is VALID [2022-04-28 04:42:28,902 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-28 04:42:28,902 INFO L290 TraceCheckUtils]: 2: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,902 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9076#true} {9076#true} #69#return; {9076#true} is VALID [2022-04-28 04:42:28,902 INFO L272 TraceCheckUtils]: 4: Hoare triple {9076#true} call #t~ret8 := main(); {9076#true} is VALID [2022-04-28 04:42:28,902 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-28 04:42:28,902 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-28 04:42:28,903 INFO L290 TraceCheckUtils]: 7: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L290 TraceCheckUtils]: 8: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L290 TraceCheckUtils]: 9: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9076#true} {9076#true} #61#return; {9076#true} is VALID [2022-04-28 04:42:28,903 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-28 04:42:28,903 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-28 04:42:28,903 INFO L290 TraceCheckUtils]: 13: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L290 TraceCheckUtils]: 14: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L290 TraceCheckUtils]: 15: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,903 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9076#true} {9076#true} #63#return; {9076#true} is VALID [2022-04-28 04:42:28,903 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-28 04:42:28,904 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-28 04:42:28,904 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-28 04:42:28,904 INFO L290 TraceCheckUtils]: 20: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:28,904 INFO L290 TraceCheckUtils]: 21: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:28,904 INFO L290 TraceCheckUtils]: 22: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,904 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-28 04:42:28,905 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-28 04:42:28,905 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-28 04:42:28,906 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-28 04:42:28,906 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-28 04:42:28,906 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-28 04:42:28,906 INFO L290 TraceCheckUtils]: 29: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:28,906 INFO L290 TraceCheckUtils]: 30: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:28,906 INFO L290 TraceCheckUtils]: 31: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,907 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-28 04:42:28,907 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-28 04:42:28,908 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-28 04:42:28,908 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-28 04:42:28,908 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-28 04:42:28,908 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-28 04:42:28,908 INFO L290 TraceCheckUtils]: 38: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:28,909 INFO L290 TraceCheckUtils]: 39: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:28,909 INFO L290 TraceCheckUtils]: 40: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:28,909 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-28 04:42:28,909 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-28 04:42:28,910 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-28 04:42:28,910 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-28 04:42:28,910 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-28 04:42:28,910 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-28 04:42:28,910 INFO L290 TraceCheckUtils]: 47: Hoare triple {9077#false} ~cond := #in~cond; {9077#false} is VALID [2022-04-28 04:42:28,910 INFO L290 TraceCheckUtils]: 48: Hoare triple {9077#false} assume 0 == ~cond; {9077#false} is VALID [2022-04-28 04:42:28,910 INFO L290 TraceCheckUtils]: 49: Hoare triple {9077#false} assume !false; {9077#false} is VALID [2022-04-28 04:42:28,910 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-28 04:42:28,911 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:42:29,078 INFO L290 TraceCheckUtils]: 49: Hoare triple {9077#false} assume !false; {9077#false} is VALID [2022-04-28 04:42:29,078 INFO L290 TraceCheckUtils]: 48: Hoare triple {9077#false} assume 0 == ~cond; {9077#false} is VALID [2022-04-28 04:42:29,078 INFO L290 TraceCheckUtils]: 47: Hoare triple {9077#false} ~cond := #in~cond; {9077#false} is VALID [2022-04-28 04:42:29,078 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-28 04:42:29,078 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-28 04:42:29,078 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-28 04:42:29,078 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-28 04:42:29,079 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-28 04:42:29,079 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {9076#true} {9249#(< main_~v~0 0)} #65#return; {9249#(< main_~v~0 0)} is VALID [2022-04-28 04:42:29,079 INFO L290 TraceCheckUtils]: 40: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,079 INFO L290 TraceCheckUtils]: 39: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:29,079 INFO L290 TraceCheckUtils]: 38: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:29,079 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-28 04:42:29,080 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-28 04:42:29,080 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-28 04:42:29,080 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-28 04:42:29,081 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-28 04:42:29,081 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-28 04:42:29,081 INFO L290 TraceCheckUtils]: 31: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,081 INFO L290 TraceCheckUtils]: 30: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:29,081 INFO L290 TraceCheckUtils]: 29: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:29,081 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-28 04:42:29,082 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-28 04:42:29,082 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-28 04:42:29,082 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-28 04:42:29,083 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-28 04:42:29,083 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-28 04:42:29,083 INFO L290 TraceCheckUtils]: 22: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,083 INFO L290 TraceCheckUtils]: 21: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:29,083 INFO L290 TraceCheckUtils]: 20: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:29,083 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-28 04:42:29,084 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-28 04:42:29,084 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-28 04:42:29,084 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {9076#true} {9076#true} #63#return; {9076#true} is VALID [2022-04-28 04:42:29,084 INFO L290 TraceCheckUtils]: 15: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 14: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 13: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:29,085 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-28 04:42:29,085 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-28 04:42:29,085 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9076#true} {9076#true} #61#return; {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 9: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 8: Hoare triple {9076#true} assume !(0 == ~cond); {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 7: Hoare triple {9076#true} ~cond := #in~cond; {9076#true} is VALID [2022-04-28 04:42:29,085 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-28 04:42:29,085 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-28 04:42:29,085 INFO L272 TraceCheckUtils]: 4: Hoare triple {9076#true} call #t~ret8 := main(); {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9076#true} {9076#true} #69#return; {9076#true} is VALID [2022-04-28 04:42:29,085 INFO L290 TraceCheckUtils]: 2: Hoare triple {9076#true} assume true; {9076#true} is VALID [2022-04-28 04:42:29,085 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-28 04:42:29,085 INFO L272 TraceCheckUtils]: 0: Hoare triple {9076#true} call ULTIMATE.init(); {9076#true} is VALID [2022-04-28 04:42:29,085 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-28 04:42:29,086 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:42:29,086 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [595546284] [2022-04-28 04:42:29,086 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:42:29,086 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [520960369] [2022-04-28 04:42:29,086 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [520960369] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:42:29,086 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:42:29,086 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5] total 8 [2022-04-28 04:42:29,086 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:42:29,086 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1029226448] [2022-04-28 04:42:29,086 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1029226448] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:42:29,086 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:42:29,086 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-28 04:42:29,086 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [302698325] [2022-04-28 04:42:29,086 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:42:29,087 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-28 04:42:29,087 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:42:29,087 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-28 04:42:29,113 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:42:29,113 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-28 04:42:29,113 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:29,113 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-28 04:42:29,114 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-28 04:42:29,114 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-28 04:42:29,492 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:29,493 INFO L93 Difference]: Finished difference Result 121 states and 141 transitions. [2022-04-28 04:42:29,493 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-28 04:42:29,493 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-28 04:42:29,493 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:42:29,493 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-28 04:42:29,494 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 71 transitions. [2022-04-28 04:42:29,494 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-28 04:42:29,494 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 71 transitions. [2022-04-28 04:42:29,494 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 71 transitions. [2022-04-28 04:42:29,556 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-28 04:42:29,557 INFO L225 Difference]: With dead ends: 121 [2022-04-28 04:42:29,557 INFO L226 Difference]: Without dead ends: 108 [2022-04-28 04:42:29,558 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 100 GetRequests, 93 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=24, Invalid=48, Unknown=0, NotChecked=0, Total=72 [2022-04-28 04:42:29,558 INFO L413 NwaCegarLoop]: 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-28 04:42:29,558 INFO L414 NwaCegarLoop]: 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-28 04:42:29,559 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 108 states. [2022-04-28 04:42:29,747 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 108 to 104. [2022-04-28 04:42:29,747 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:42:29,748 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-28 04:42:29,748 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-28 04:42:29,748 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-28 04:42:29,749 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:29,750 INFO L93 Difference]: Finished difference Result 108 states and 124 transitions. [2022-04-28 04:42:29,750 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 124 transitions. [2022-04-28 04:42:29,750 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:29,750 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:29,750 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-28 04:42:29,750 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-28 04:42:29,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:29,752 INFO L93 Difference]: Finished difference Result 108 states and 124 transitions. [2022-04-28 04:42:29,752 INFO L276 IsEmpty]: Start isEmpty. Operand 108 states and 124 transitions. [2022-04-28 04:42:29,752 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:29,752 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:29,752 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:42:29,752 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:42:29,752 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-28 04:42:29,754 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 104 states to 104 states and 120 transitions. [2022-04-28 04:42:29,754 INFO L78 Accepts]: Start accepts. Automaton has 104 states and 120 transitions. Word has length 50 [2022-04-28 04:42:29,754 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:42:29,754 INFO L495 AbstractCegarLoop]: Abstraction has 104 states and 120 transitions. [2022-04-28 04:42:29,754 INFO L496 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-28 04:42:29,754 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 104 states and 120 transitions. [2022-04-28 04:42:34,047 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-28 04:42:34,048 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 120 transitions. [2022-04-28 04:42:34,048 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:42:34,048 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:42:34,048 INFO L195 NwaCegarLoop]: 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-28 04:42:34,065 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Forceful destruction successful, exit code 0 [2022-04-28 04:42:34,263 WARN L477 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-28 04:42:34,263 INFO L420 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:42:34,264 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:42:34,264 INFO L85 PathProgramCache]: Analyzing trace with hash 1452517941, now seen corresponding path program 11 times [2022-04-28 04:42:34,264 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:34,264 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1079765377] [2022-04-28 04:42:34,264 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:42:34,264 INFO L85 PathProgramCache]: Analyzing trace with hash 1452517941, now seen corresponding path program 12 times [2022-04-28 04:42:34,264 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:42:34,264 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1885480684] [2022-04-28 04:42:34,265 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:42:34,265 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:42:34,275 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:42:34,275 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1438837245] [2022-04-28 04:42:34,275 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:42:34,275 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:42:34,275 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:42:34,287 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-28 04:42:34,288 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-28 04:42:34,330 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-28 04:42:34,330 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:42:34,331 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 37 conjunts are in the unsatisfiable core [2022-04-28 04:42:34,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:42:34,341 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:42:34,865 INFO L272 TraceCheckUtils]: 0: Hoare triple {10051#true} call ULTIMATE.init(); {10051#true} is VALID [2022-04-28 04:42:34,866 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-28 04:42:34,866 INFO L290 TraceCheckUtils]: 2: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:34,866 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10051#true} {10051#true} #69#return; {10051#true} is VALID [2022-04-28 04:42:34,866 INFO L272 TraceCheckUtils]: 4: Hoare triple {10051#true} call #t~ret8 := main(); {10051#true} is VALID [2022-04-28 04:42:34,866 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-28 04:42:34,866 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-28 04:42:34,866 INFO L290 TraceCheckUtils]: 7: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:34,866 INFO L290 TraceCheckUtils]: 8: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:34,866 INFO L290 TraceCheckUtils]: 9: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:34,866 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10051#true} {10051#true} #61#return; {10051#true} is VALID [2022-04-28 04:42:34,866 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-28 04:42:34,866 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-28 04:42:34,867 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-28 04:42:34,867 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-28 04:42:34,867 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-28 04:42:34,867 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-28 04:42:34,868 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-28 04:42:34,868 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-28 04:42:34,868 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-28 04:42:34,868 INFO L290 TraceCheckUtils]: 20: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:34,868 INFO L290 TraceCheckUtils]: 21: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:34,868 INFO L290 TraceCheckUtils]: 22: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:34,869 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-28 04:42:34,869 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-28 04:42:34,870 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-28 04:42:34,870 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-28 04:42:34,871 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-28 04:42:34,871 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-28 04:42:34,871 INFO L290 TraceCheckUtils]: 29: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:34,871 INFO L290 TraceCheckUtils]: 30: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:34,871 INFO L290 TraceCheckUtils]: 31: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:34,872 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-28 04:42:34,872 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-28 04:42:34,873 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-28 04:42:34,873 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-28 04:42:34,873 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-28 04:42:34,874 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-28 04:42:34,874 INFO L290 TraceCheckUtils]: 38: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:34,874 INFO L290 TraceCheckUtils]: 39: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:34,874 INFO L290 TraceCheckUtils]: 40: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:34,874 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-28 04:42:34,875 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-28 04:42:34,875 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-28 04:42:34,876 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-28 04:42:34,876 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-28 04:42:34,877 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-28 04:42:34,877 INFO L290 TraceCheckUtils]: 47: Hoare triple {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10209#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:42:34,878 INFO L290 TraceCheckUtils]: 48: Hoare triple {10209#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10052#false} is VALID [2022-04-28 04:42:34,878 INFO L290 TraceCheckUtils]: 49: Hoare triple {10052#false} assume !false; {10052#false} is VALID [2022-04-28 04:42:34,878 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-28 04:42:34,878 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:42:35,330 INFO L290 TraceCheckUtils]: 49: Hoare triple {10052#false} assume !false; {10052#false} is VALID [2022-04-28 04:42:35,331 INFO L290 TraceCheckUtils]: 48: Hoare triple {10209#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10052#false} is VALID [2022-04-28 04:42:35,331 INFO L290 TraceCheckUtils]: 47: Hoare triple {10205#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10209#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:42:35,332 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-28 04:42:35,333 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-28 04:42:35,334 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-28 04:42:35,336 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-28 04:42:35,336 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-28 04:42:35,337 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-28 04:42:35,337 INFO L290 TraceCheckUtils]: 40: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,337 INFO L290 TraceCheckUtils]: 39: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:35,337 INFO L290 TraceCheckUtils]: 38: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:35,337 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-28 04:42:35,337 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-28 04:42:35,339 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-28 04:42:35,339 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-28 04:42:35,340 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-28 04:42:35,340 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-28 04:42:35,340 INFO L290 TraceCheckUtils]: 31: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,340 INFO L290 TraceCheckUtils]: 30: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:35,340 INFO L290 TraceCheckUtils]: 29: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:35,340 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-28 04:42:35,341 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-28 04:42:35,342 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-28 04:42:35,344 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-28 04:42:35,344 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-28 04:42:35,345 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-28 04:42:35,345 INFO L290 TraceCheckUtils]: 22: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,345 INFO L290 TraceCheckUtils]: 21: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:35,345 INFO L290 TraceCheckUtils]: 20: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:35,345 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-28 04:42:35,346 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-28 04:42:35,346 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-28 04:42:35,346 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {10051#true} {10051#true} #63#return; {10051#true} is VALID [2022-04-28 04:42:35,346 INFO L290 TraceCheckUtils]: 15: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,346 INFO L290 TraceCheckUtils]: 14: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:35,346 INFO L290 TraceCheckUtils]: 13: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:35,346 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-28 04:42:35,346 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-28 04:42:35,346 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10051#true} {10051#true} #61#return; {10051#true} is VALID [2022-04-28 04:42:35,347 INFO L290 TraceCheckUtils]: 9: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,347 INFO L290 TraceCheckUtils]: 8: Hoare triple {10051#true} assume !(0 == ~cond); {10051#true} is VALID [2022-04-28 04:42:35,347 INFO L290 TraceCheckUtils]: 7: Hoare triple {10051#true} ~cond := #in~cond; {10051#true} is VALID [2022-04-28 04:42:35,347 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-28 04:42:35,347 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-28 04:42:35,347 INFO L272 TraceCheckUtils]: 4: Hoare triple {10051#true} call #t~ret8 := main(); {10051#true} is VALID [2022-04-28 04:42:35,347 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10051#true} {10051#true} #69#return; {10051#true} is VALID [2022-04-28 04:42:35,347 INFO L290 TraceCheckUtils]: 2: Hoare triple {10051#true} assume true; {10051#true} is VALID [2022-04-28 04:42:35,347 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-28 04:42:35,347 INFO L272 TraceCheckUtils]: 0: Hoare triple {10051#true} call ULTIMATE.init(); {10051#true} is VALID [2022-04-28 04:42:35,347 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-28 04:42:35,347 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:42:35,347 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1885480684] [2022-04-28 04:42:35,347 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:42:35,348 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1438837245] [2022-04-28 04:42:35,348 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1438837245] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:42:35,348 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:42:35,348 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 10] total 21 [2022-04-28 04:42:35,348 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:42:35,348 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1079765377] [2022-04-28 04:42:35,348 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1079765377] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:42:35,348 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:42:35,348 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-28 04:42:35,348 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1442526132] [2022-04-28 04:42:35,348 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:42:35,348 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-28 04:42:35,349 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:42:35,349 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-28 04:42:35,382 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-28 04:42:35,382 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-28 04:42:35,382 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:35,382 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-28 04:42:35,383 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=351, Unknown=0, NotChecked=0, Total=420 [2022-04-28 04:42:35,383 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-28 04:42:36,413 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:36,413 INFO L93 Difference]: Finished difference Result 117 states and 135 transitions. [2022-04-28 04:42:36,413 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:42:36,413 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-28 04:42:36,413 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:42:36,413 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-28 04:42:36,414 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 64 transitions. [2022-04-28 04:42:36,414 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-28 04:42:36,415 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 64 transitions. [2022-04-28 04:42:36,415 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 64 transitions. [2022-04-28 04:42:36,472 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-28 04:42:36,474 INFO L225 Difference]: With dead ends: 117 [2022-04-28 04:42:36,474 INFO L226 Difference]: Without dead ends: 115 [2022-04-28 04:42:36,474 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 102 GetRequests, 78 SyntacticMatches, 2 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 112 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=86, Invalid=466, Unknown=0, NotChecked=0, Total=552 [2022-04-28 04:42:36,475 INFO L413 NwaCegarLoop]: 29 mSDtfsCounter, 22 mSDsluCounter, 119 mSDsCounter, 0 mSdLazyCounter, 424 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s 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.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:42:36,475 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [23 Valid, 148 Invalid, 432 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 424 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-04-28 04:42:36,475 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2022-04-28 04:42:36,713 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 111. [2022-04-28 04:42:36,713 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:42:36,713 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-28 04:42:36,714 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-28 04:42:36,714 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-28 04:42:36,715 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:36,716 INFO L93 Difference]: Finished difference Result 115 states and 133 transitions. [2022-04-28 04:42:36,716 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 133 transitions. [2022-04-28 04:42:36,716 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:36,716 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:36,716 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-28 04:42:36,716 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-28 04:42:36,718 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:42:36,718 INFO L93 Difference]: Finished difference Result 115 states and 133 transitions. [2022-04-28 04:42:36,718 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 133 transitions. [2022-04-28 04:42:36,718 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:42:36,718 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:42:36,718 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:42:36,718 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:42:36,718 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-28 04:42:36,720 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 111 states to 111 states and 127 transitions. [2022-04-28 04:42:36,720 INFO L78 Accepts]: Start accepts. Automaton has 111 states and 127 transitions. Word has length 50 [2022-04-28 04:42:36,720 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:42:36,720 INFO L495 AbstractCegarLoop]: Abstraction has 111 states and 127 transitions. [2022-04-28 04:42:36,720 INFO L496 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-28 04:42:36,720 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 111 states and 127 transitions. [2022-04-28 04:42:40,991 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-28 04:42:40,991 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 127 transitions. [2022-04-28 04:42:40,991 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:42:40,991 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:42:40,991 INFO L195 NwaCegarLoop]: 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-28 04:42:41,007 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-28 04:42:41,192 WARN L477 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-28 04:42:41,192 INFO L420 AbstractCegarLoop]: === Iteration 17 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:42:41,192 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:42:41,192 INFO L85 PathProgramCache]: Analyzing trace with hash -1343557775, now seen corresponding path program 13 times [2022-04-28 04:42:41,192 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:42:41,192 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1345194366] [2022-04-28 04:42:41,193 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:42:41,193 INFO L85 PathProgramCache]: Analyzing trace with hash -1343557775, now seen corresponding path program 14 times [2022-04-28 04:42:41,193 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:42:41,193 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [854325676] [2022-04-28 04:42:41,193 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:42:41,193 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:42:41,201 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:42:41,201 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1035658737] [2022-04-28 04:42:41,201 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:42:41,201 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:42:41,201 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:42:41,202 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-28 04:42:41,205 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-28 04:42:41,245 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:42:41,245 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:42:41,246 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 43 conjunts are in the unsatisfiable core [2022-04-28 04:42:41,255 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:42:41,256 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:42:56,716 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:43:05,743 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:43:13,461 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:43:13,776 INFO L272 TraceCheckUtils]: 0: Hoare triple {11063#true} call ULTIMATE.init(); {11063#true} is VALID [2022-04-28 04:43:13,776 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-28 04:43:13,776 INFO L290 TraceCheckUtils]: 2: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:13,776 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11063#true} {11063#true} #69#return; {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L272 TraceCheckUtils]: 4: Hoare triple {11063#true} call #t~ret8 := main(); {11063#true} is VALID [2022-04-28 04:43:13,777 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-28 04:43:13,777 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-28 04:43:13,777 INFO L290 TraceCheckUtils]: 7: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L290 TraceCheckUtils]: 8: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L290 TraceCheckUtils]: 9: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11063#true} {11063#true} #61#return; {11063#true} is VALID [2022-04-28 04:43:13,777 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-28 04:43:13,777 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-28 04:43:13,777 INFO L290 TraceCheckUtils]: 13: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L290 TraceCheckUtils]: 14: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L290 TraceCheckUtils]: 15: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:13,777 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11063#true} {11063#true} #63#return; {11063#true} is VALID [2022-04-28 04:43:13,778 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-28 04:43:13,778 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-28 04:43:13,778 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-28 04:43:13,778 INFO L290 TraceCheckUtils]: 20: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:13,778 INFO L290 TraceCheckUtils]: 21: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:13,778 INFO L290 TraceCheckUtils]: 22: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:13,779 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-28 04:43:13,779 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-28 04:43:13,780 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-28 04:43:13,780 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-28 04:43:13,781 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-28 04:43:13,781 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-28 04:43:13,781 INFO L290 TraceCheckUtils]: 29: Hoare triple {11063#true} ~cond := #in~cond; {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:13,781 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-28 04:43:13,781 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-28 04:43:13,782 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-28 04:43:13,782 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-28 04:43:13,783 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-28 04:43:13,783 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-28 04:43:13,784 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-28 04:43:13,784 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-28 04:43:13,784 INFO L290 TraceCheckUtils]: 38: Hoare triple {11063#true} ~cond := #in~cond; {11158#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:13,785 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-28 04:43:13,785 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-28 04:43:13,786 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-28 04:43:13,787 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-28 04:43:13,788 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-28 04:43:13,789 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-28 04:43:13,791 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-28 04:43:13,793 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-28 04:43:13,793 INFO L290 TraceCheckUtils]: 47: Hoare triple {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {11222#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:13,793 INFO L290 TraceCheckUtils]: 48: Hoare triple {11222#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11064#false} is VALID [2022-04-28 04:43:13,793 INFO L290 TraceCheckUtils]: 49: Hoare triple {11064#false} assume !false; {11064#false} is VALID [2022-04-28 04:43:13,794 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-28 04:43:13,794 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:43:16,821 INFO L290 TraceCheckUtils]: 49: Hoare triple {11064#false} assume !false; {11064#false} is VALID [2022-04-28 04:43:16,822 INFO L290 TraceCheckUtils]: 48: Hoare triple {11222#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {11064#false} is VALID [2022-04-28 04:43:16,822 INFO L290 TraceCheckUtils]: 47: Hoare triple {11218#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {11222#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:16,823 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-28 04:43:16,824 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-28 04:43:16,825 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-28 04:43:16,826 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-28 04:43:16,827 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-28 04:43:16,827 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-28 04:43:16,828 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-28 04:43:16,828 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-28 04:43:16,828 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-28 04:43:16,828 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-28 04:43:16,829 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-28 04:43:16,829 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-28 04:43:16,829 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-28 04:43:16,829 INFO L290 TraceCheckUtils]: 33: Hoare triple {11063#true} assume !!(~x~0 <= ~X~0); {11063#true} is VALID [2022-04-28 04:43:16,829 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {11063#true} {11063#true} #65#return; {11063#true} is VALID [2022-04-28 04:43:16,829 INFO L290 TraceCheckUtils]: 31: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:16,829 INFO L290 TraceCheckUtils]: 30: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 29: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,830 INFO L290 TraceCheckUtils]: 24: Hoare triple {11063#true} assume !!(~x~0 <= ~X~0); {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {11063#true} {11063#true} #65#return; {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 22: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 21: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 20: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,830 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {11063#true} {11063#true} #63#return; {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 15: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 14: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:16,830 INFO L290 TraceCheckUtils]: 13: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:16,830 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-28 04:43:16,830 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-28 04:43:16,831 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {11063#true} {11063#true} #61#return; {11063#true} is VALID [2022-04-28 04:43:16,831 INFO L290 TraceCheckUtils]: 9: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:16,831 INFO L290 TraceCheckUtils]: 8: Hoare triple {11063#true} assume !(0 == ~cond); {11063#true} is VALID [2022-04-28 04:43:16,831 INFO L290 TraceCheckUtils]: 7: Hoare triple {11063#true} ~cond := #in~cond; {11063#true} is VALID [2022-04-28 04:43:16,831 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-28 04:43:16,831 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-28 04:43:16,831 INFO L272 TraceCheckUtils]: 4: Hoare triple {11063#true} call #t~ret8 := main(); {11063#true} is VALID [2022-04-28 04:43:16,831 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {11063#true} {11063#true} #69#return; {11063#true} is VALID [2022-04-28 04:43:16,831 INFO L290 TraceCheckUtils]: 2: Hoare triple {11063#true} assume true; {11063#true} is VALID [2022-04-28 04:43:16,831 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-28 04:43:16,831 INFO L272 TraceCheckUtils]: 0: Hoare triple {11063#true} call ULTIMATE.init(); {11063#true} is VALID [2022-04-28 04:43:16,831 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-28 04:43:16,831 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:43:16,831 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [854325676] [2022-04-28 04:43:16,831 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:43:16,831 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1035658737] [2022-04-28 04:43:16,832 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1035658737] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:43:16,832 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:43:16,832 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 11] total 22 [2022-04-28 04:43:16,832 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:43:16,832 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1345194366] [2022-04-28 04:43:16,832 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1345194366] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:43:16,832 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:43:16,832 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-28 04:43:16,832 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1243589261] [2022-04-28 04:43:16,832 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:43:16,832 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-28 04:43:16,832 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:43:16,833 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-28 04:43:16,870 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-28 04:43:16,870 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-28 04:43:16,870 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:16,871 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-28 04:43:16,871 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=399, Unknown=0, NotChecked=0, Total=462 [2022-04-28 04:43:16,871 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-28 04:43:18,722 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:18,723 INFO L93 Difference]: Finished difference Result 134 states and 156 transitions. [2022-04-28 04:43:18,723 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 16 states. [2022-04-28 04:43:18,723 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-28 04:43:18,723 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:43:18,723 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-28 04:43:18,724 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2022-04-28 04:43:18,724 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-28 04:43:18,724 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 77 transitions. [2022-04-28 04:43:18,725 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 16 states and 77 transitions. [2022-04-28 04:43:18,791 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-28 04:43:18,793 INFO L225 Difference]: With dead ends: 134 [2022-04-28 04:43:18,793 INFO L226 Difference]: Without dead ends: 121 [2022-04-28 04:43:18,793 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 77 SyntacticMatches, 2 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 54 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=93, Invalid=557, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:43:18,794 INFO L413 NwaCegarLoop]: 27 mSDtfsCounter, 15 mSDsluCounter, 200 mSDsCounter, 0 mSdLazyCounter, 490 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s 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, 0.5s IncrementalHoareTripleChecker+Time [2022-04-28 04:43:18,794 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [16 Valid, 227 Invalid, 495 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 490 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-28 04:43:18,794 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 121 states. [2022-04-28 04:43:19,065 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 121 to 121. [2022-04-28 04:43:19,065 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:43:19,065 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-28 04:43:19,065 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-28 04:43:19,066 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-28 04:43:19,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:19,067 INFO L93 Difference]: Finished difference Result 121 states and 138 transitions. [2022-04-28 04:43:19,067 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-28 04:43:19,068 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:19,068 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:19,068 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-28 04:43:19,068 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-28 04:43:19,070 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:19,070 INFO L93 Difference]: Finished difference Result 121 states and 138 transitions. [2022-04-28 04:43:19,070 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-28 04:43:19,070 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:19,070 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:19,070 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:43:19,070 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:43:19,070 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-28 04:43:19,072 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 121 states to 121 states and 138 transitions. [2022-04-28 04:43:19,072 INFO L78 Accepts]: Start accepts. Automaton has 121 states and 138 transitions. Word has length 50 [2022-04-28 04:43:19,072 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:43:19,072 INFO L495 AbstractCegarLoop]: Abstraction has 121 states and 138 transitions. [2022-04-28 04:43:19,072 INFO L496 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-28 04:43:19,072 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 121 states and 138 transitions. [2022-04-28 04:43:23,377 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-28 04:43:23,377 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 138 transitions. [2022-04-28 04:43:23,378 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 51 [2022-04-28 04:43:23,378 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:43:23,378 INFO L195 NwaCegarLoop]: 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-28 04:43:23,393 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-28 04:43:23,587 WARN L477 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-28 04:43:23,587 INFO L420 AbstractCegarLoop]: === Iteration 18 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:43:23,588 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:43:23,588 INFO L85 PathProgramCache]: Analyzing trace with hash 431449587, now seen corresponding path program 5 times [2022-04-28 04:43:23,588 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:23,588 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2118632219] [2022-04-28 04:43:23,588 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:43:23,588 INFO L85 PathProgramCache]: Analyzing trace with hash 431449587, now seen corresponding path program 6 times [2022-04-28 04:43:23,588 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:43:23,588 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [464604047] [2022-04-28 04:43:23,588 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:43:23,588 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:43:23,597 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:43:23,597 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [974708761] [2022-04-28 04:43:23,597 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:43:23,597 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:43:23,597 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:43:23,598 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-28 04:43:23,599 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-28 04:43:23,640 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 4 check-sat command(s) [2022-04-28 04:43:23,640 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:43:23,641 INFO L263 TraceCheckSpWp]: Trace formula consists of 147 conjuncts, 54 conjunts are in the unsatisfiable core [2022-04-28 04:43:23,650 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:43:23,651 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:43:24,270 INFO L272 TraceCheckUtils]: 0: Hoare triple {12144#true} call ULTIMATE.init(); {12144#true} is VALID [2022-04-28 04:43:24,271 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-28 04:43:24,271 INFO L290 TraceCheckUtils]: 2: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12144#true} {12144#true} #69#return; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L272 TraceCheckUtils]: 4: Hoare triple {12144#true} call #t~ret8 := main(); {12144#true} is VALID [2022-04-28 04:43:24,271 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-28 04:43:24,271 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-28 04:43:24,271 INFO L290 TraceCheckUtils]: 7: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L290 TraceCheckUtils]: 8: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L290 TraceCheckUtils]: 9: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12144#true} {12144#true} #61#return; {12144#true} is VALID [2022-04-28 04:43:24,271 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-28 04:43:24,271 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-28 04:43:24,271 INFO L290 TraceCheckUtils]: 13: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L290 TraceCheckUtils]: 14: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L290 TraceCheckUtils]: 15: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:24,271 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12144#true} {12144#true} #63#return; {12144#true} is VALID [2022-04-28 04:43:24,272 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-28 04:43:24,272 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-28 04:43:24,272 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-28 04:43:24,272 INFO L290 TraceCheckUtils]: 20: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:24,272 INFO L290 TraceCheckUtils]: 21: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:24,272 INFO L290 TraceCheckUtils]: 22: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:24,273 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-28 04:43:24,273 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-28 04:43:24,274 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-28 04:43:24,274 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-28 04:43:24,275 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-28 04:43:24,275 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-28 04:43:24,275 INFO L290 TraceCheckUtils]: 29: Hoare triple {12144#true} ~cond := #in~cond; {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:24,276 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-28 04:43:24,276 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-28 04:43:24,277 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-28 04:43:24,277 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-28 04:43:24,278 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-28 04:43:24,278 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-28 04:43:24,279 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-28 04:43:24,279 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-28 04:43:24,279 INFO L290 TraceCheckUtils]: 38: Hoare triple {12144#true} ~cond := #in~cond; {12240#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:24,280 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-28 04:43:24,280 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-28 04:43:24,281 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-28 04:43:24,281 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-28 04:43:24,282 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-28 04:43:24,282 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-28 04:43:24,283 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-28 04:43:24,284 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-28 04:43:24,284 INFO L290 TraceCheckUtils]: 47: Hoare triple {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12304#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:24,284 INFO L290 TraceCheckUtils]: 48: Hoare triple {12304#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {12145#false} is VALID [2022-04-28 04:43:24,285 INFO L290 TraceCheckUtils]: 49: Hoare triple {12145#false} assume !false; {12145#false} is VALID [2022-04-28 04:43:24,285 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-28 04:43:24,285 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:43:27,144 INFO L290 TraceCheckUtils]: 49: Hoare triple {12145#false} assume !false; {12145#false} is VALID [2022-04-28 04:43:27,144 INFO L290 TraceCheckUtils]: 48: Hoare triple {12304#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {12145#false} is VALID [2022-04-28 04:43:27,145 INFO L290 TraceCheckUtils]: 47: Hoare triple {12300#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {12304#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:43:27,145 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-28 04:43:27,146 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-28 04:43:27,190 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-28 04:43:27,191 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-28 04:43:27,192 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-28 04:43:27,193 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-28 04:43:27,193 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-28 04:43:27,193 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-28 04:43:27,193 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-28 04:43:27,193 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-28 04:43:27,194 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-28 04:43:27,194 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-28 04:43:27,194 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-28 04:43:27,194 INFO L290 TraceCheckUtils]: 33: Hoare triple {12144#true} assume !!(~x~0 <= ~X~0); {12144#true} is VALID [2022-04-28 04:43:27,194 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12144#true} {12144#true} #65#return; {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 31: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 30: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 29: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:27,195 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-28 04:43:27,195 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-28 04:43:27,195 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-28 04:43:27,195 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-28 04:43:27,195 INFO L290 TraceCheckUtils]: 24: Hoare triple {12144#true} assume !!(~x~0 <= ~X~0); {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {12144#true} {12144#true} #65#return; {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 22: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 21: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 20: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:27,195 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-28 04:43:27,195 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-28 04:43:27,195 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-28 04:43:27,195 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {12144#true} {12144#true} #63#return; {12144#true} is VALID [2022-04-28 04:43:27,195 INFO L290 TraceCheckUtils]: 15: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 14: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 13: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:27,196 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-28 04:43:27,196 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-28 04:43:27,196 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {12144#true} {12144#true} #61#return; {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 9: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 8: Hoare triple {12144#true} assume !(0 == ~cond); {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 7: Hoare triple {12144#true} ~cond := #in~cond; {12144#true} is VALID [2022-04-28 04:43:27,196 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-28 04:43:27,196 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-28 04:43:27,196 INFO L272 TraceCheckUtils]: 4: Hoare triple {12144#true} call #t~ret8 := main(); {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {12144#true} {12144#true} #69#return; {12144#true} is VALID [2022-04-28 04:43:27,196 INFO L290 TraceCheckUtils]: 2: Hoare triple {12144#true} assume true; {12144#true} is VALID [2022-04-28 04:43:27,196 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-28 04:43:27,196 INFO L272 TraceCheckUtils]: 0: Hoare triple {12144#true} call ULTIMATE.init(); {12144#true} is VALID [2022-04-28 04:43:27,196 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-28 04:43:27,197 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:43:27,197 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [464604047] [2022-04-28 04:43:27,197 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:43:27,197 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [974708761] [2022-04-28 04:43:27,197 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [974708761] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:43:27,197 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:43:27,197 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 10] total 22 [2022-04-28 04:43:27,197 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:43:27,197 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2118632219] [2022-04-28 04:43:27,197 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2118632219] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:43:27,197 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:43:27,197 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-28 04:43:27,197 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [134063478] [2022-04-28 04:43:27,197 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:43:27,198 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-28 04:43:27,198 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:43:27,198 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-28 04:43:27,235 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-28 04:43:27,235 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-28 04:43:27,235 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:27,235 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-28 04:43:27,235 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=393, Unknown=0, NotChecked=0, Total=462 [2022-04-28 04:43:27,236 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-28 04:43:28,553 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:28,553 INFO L93 Difference]: Finished difference Result 142 states and 159 transitions. [2022-04-28 04:43:28,553 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-28 04:43:28,553 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-28 04:43:28,553 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:43:28,553 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-28 04:43:28,554 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 65 transitions. [2022-04-28 04:43:28,554 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-28 04:43:28,555 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 65 transitions. [2022-04-28 04:43:28,555 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 65 transitions. [2022-04-28 04:43:28,625 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:43:28,627 INFO L225 Difference]: With dead ends: 142 [2022-04-28 04:43:28,627 INFO L226 Difference]: Without dead ends: 140 [2022-04-28 04:43:28,627 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 75 SyntacticMatches, 4 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 94 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=97, Invalid=553, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:43:28,627 INFO L413 NwaCegarLoop]: 28 mSDtfsCounter, 20 mSDsluCounter, 186 mSDsCounter, 0 mSdLazyCounter, 502 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s 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, 0.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:43:28,627 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [22 Valid, 214 Invalid, 510 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 502 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-04-28 04:43:28,628 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 140 states. [2022-04-28 04:43:28,859 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 140 to 129. [2022-04-28 04:43:28,859 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:43:28,860 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-28 04:43:28,860 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-28 04:43:28,860 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-28 04:43:28,862 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:28,862 INFO L93 Difference]: Finished difference Result 140 states and 157 transitions. [2022-04-28 04:43:28,862 INFO L276 IsEmpty]: Start isEmpty. Operand 140 states and 157 transitions. [2022-04-28 04:43:28,862 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:28,862 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:28,862 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-28 04:43:28,862 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-28 04:43:28,864 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:28,864 INFO L93 Difference]: Finished difference Result 140 states and 157 transitions. [2022-04-28 04:43:28,864 INFO L276 IsEmpty]: Start isEmpty. Operand 140 states and 157 transitions. [2022-04-28 04:43:28,864 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:28,864 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:28,864 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:43:28,864 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:43:28,864 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-28 04:43:28,866 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 129 states to 129 states and 144 transitions. [2022-04-28 04:43:28,866 INFO L78 Accepts]: Start accepts. Automaton has 129 states and 144 transitions. Word has length 50 [2022-04-28 04:43:28,866 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:43:28,866 INFO L495 AbstractCegarLoop]: Abstraction has 129 states and 144 transitions. [2022-04-28 04:43:28,866 INFO L496 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-28 04:43:28,866 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 129 states and 144 transitions. [2022-04-28 04:43:33,190 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-28 04:43:33,191 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 144 transitions. [2022-04-28 04:43:33,191 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 04:43:33,191 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:43:33,191 INFO L195 NwaCegarLoop]: 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-28 04:43:33,207 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-28 04:43:33,391 WARN L477 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-28 04:43:33,392 INFO L420 AbstractCegarLoop]: === Iteration 19 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:43:33,392 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:43:33,392 INFO L85 PathProgramCache]: Analyzing trace with hash 850213676, now seen corresponding path program 3 times [2022-04-28 04:43:33,392 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:33,392 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1613855965] [2022-04-28 04:43:33,392 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:43:33,392 INFO L85 PathProgramCache]: Analyzing trace with hash 850213676, now seen corresponding path program 4 times [2022-04-28 04:43:33,392 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:43:33,392 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1320037160] [2022-04-28 04:43:33,392 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:43:33,393 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:43:33,401 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:43:33,401 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1140146015] [2022-04-28 04:43:33,401 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:43:33,401 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:43:33,401 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:43:33,402 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-28 04:43:33,403 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-28 04:43:33,439 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:43:33,439 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:43:33,439 INFO L263 TraceCheckSpWp]: Trace formula consists of 118 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-28 04:43:33,449 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:43:33,449 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:43:34,230 INFO L272 TraceCheckUtils]: 0: Hoare triple {13295#true} call ULTIMATE.init(); {13295#true} is VALID [2022-04-28 04:43:34,230 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-28 04:43:34,230 INFO L290 TraceCheckUtils]: 2: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13295#true} {13295#true} #69#return; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L272 TraceCheckUtils]: 4: Hoare triple {13295#true} call #t~ret8 := main(); {13295#true} is VALID [2022-04-28 04:43:34,231 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-28 04:43:34,231 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-28 04:43:34,231 INFO L290 TraceCheckUtils]: 7: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L290 TraceCheckUtils]: 8: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L290 TraceCheckUtils]: 9: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13295#true} {13295#true} #61#return; {13295#true} is VALID [2022-04-28 04:43:34,231 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-28 04:43:34,231 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-28 04:43:34,231 INFO L290 TraceCheckUtils]: 13: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L290 TraceCheckUtils]: 14: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L290 TraceCheckUtils]: 15: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,231 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {13295#true} {13295#true} #63#return; {13295#true} is VALID [2022-04-28 04:43:34,232 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-28 04:43:34,232 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-28 04:43:34,232 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-28 04:43:34,232 INFO L290 TraceCheckUtils]: 20: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,232 INFO L290 TraceCheckUtils]: 21: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,232 INFO L290 TraceCheckUtils]: 22: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,233 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-28 04:43:34,233 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-28 04:43:34,234 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-28 04:43:34,235 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-28 04:43:34,236 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-28 04:43:34,236 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-28 04:43:34,236 INFO L290 TraceCheckUtils]: 29: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,236 INFO L290 TraceCheckUtils]: 30: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,236 INFO L290 TraceCheckUtils]: 31: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,237 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-28 04:43:34,237 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-28 04:43:34,238 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-28 04:43:34,239 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-28 04:43:34,239 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-28 04:43:34,239 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-28 04:43:34,239 INFO L290 TraceCheckUtils]: 38: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,240 INFO L290 TraceCheckUtils]: 39: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,240 INFO L290 TraceCheckUtils]: 40: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,240 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-28 04:43:34,241 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-28 04:43:34,242 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-28 04:43:34,242 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-28 04:43:34,243 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-28 04:43:34,243 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-28 04:43:34,243 INFO L290 TraceCheckUtils]: 47: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,243 INFO L290 TraceCheckUtils]: 48: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,243 INFO L290 TraceCheckUtils]: 49: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,244 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-28 04:43:34,244 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-28 04:43:34,244 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-28 04:43:34,245 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-28 04:43:34,245 INFO L290 TraceCheckUtils]: 54: Hoare triple {13296#false} ~cond := #in~cond; {13296#false} is VALID [2022-04-28 04:43:34,245 INFO L290 TraceCheckUtils]: 55: Hoare triple {13296#false} assume 0 == ~cond; {13296#false} is VALID [2022-04-28 04:43:34,245 INFO L290 TraceCheckUtils]: 56: Hoare triple {13296#false} assume !false; {13296#false} is VALID [2022-04-28 04:43:34,245 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-28 04:43:34,245 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:43:34,601 INFO L290 TraceCheckUtils]: 56: Hoare triple {13296#false} assume !false; {13296#false} is VALID [2022-04-28 04:43:34,602 INFO L290 TraceCheckUtils]: 55: Hoare triple {13296#false} assume 0 == ~cond; {13296#false} is VALID [2022-04-28 04:43:34,602 INFO L290 TraceCheckUtils]: 54: Hoare triple {13296#false} ~cond := #in~cond; {13296#false} is VALID [2022-04-28 04:43:34,602 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-28 04:43:34,602 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-28 04:43:34,602 INFO L290 TraceCheckUtils]: 51: Hoare triple {13490#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {13296#false} is VALID [2022-04-28 04:43:34,603 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-28 04:43:34,603 INFO L290 TraceCheckUtils]: 49: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,603 INFO L290 TraceCheckUtils]: 48: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,603 INFO L290 TraceCheckUtils]: 47: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,603 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-28 04:43:34,603 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-28 04:43:34,604 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-28 04:43:34,604 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-28 04:43:34,605 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-28 04:43:34,605 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-28 04:43:34,605 INFO L290 TraceCheckUtils]: 40: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,605 INFO L290 TraceCheckUtils]: 39: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,605 INFO L290 TraceCheckUtils]: 38: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,605 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-28 04:43:34,606 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-28 04:43:34,606 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-28 04:43:34,607 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-28 04:43:34,607 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-28 04:43:34,608 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-28 04:43:34,608 INFO L290 TraceCheckUtils]: 31: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,608 INFO L290 TraceCheckUtils]: 30: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,608 INFO L290 TraceCheckUtils]: 29: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,608 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-28 04:43:34,608 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-28 04:43:34,609 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-28 04:43:34,610 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-28 04:43:34,610 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-28 04:43:34,611 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-28 04:43:34,611 INFO L290 TraceCheckUtils]: 22: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,611 INFO L290 TraceCheckUtils]: 21: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,611 INFO L290 TraceCheckUtils]: 20: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,611 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-28 04:43:34,615 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-28 04:43:34,616 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-28 04:43:34,616 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {13295#true} {13295#true} #63#return; {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 15: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 14: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 13: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,616 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-28 04:43:34,616 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-28 04:43:34,616 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {13295#true} {13295#true} #61#return; {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 9: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 8: Hoare triple {13295#true} assume !(0 == ~cond); {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 7: Hoare triple {13295#true} ~cond := #in~cond; {13295#true} is VALID [2022-04-28 04:43:34,616 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-28 04:43:34,616 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-28 04:43:34,616 INFO L272 TraceCheckUtils]: 4: Hoare triple {13295#true} call #t~ret8 := main(); {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {13295#true} {13295#true} #69#return; {13295#true} is VALID [2022-04-28 04:43:34,616 INFO L290 TraceCheckUtils]: 2: Hoare triple {13295#true} assume true; {13295#true} is VALID [2022-04-28 04:43:34,617 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-28 04:43:34,617 INFO L272 TraceCheckUtils]: 0: Hoare triple {13295#true} call ULTIMATE.init(); {13295#true} is VALID [2022-04-28 04:43:34,617 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-28 04:43:34,617 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:43:34,617 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1320037160] [2022-04-28 04:43:34,617 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:43:34,617 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1140146015] [2022-04-28 04:43:34,617 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1140146015] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:43:34,617 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:43:34,617 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 16 [2022-04-28 04:43:34,617 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:43:34,617 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1613855965] [2022-04-28 04:43:34,617 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1613855965] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:43:34,617 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:43:34,618 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-28 04:43:34,618 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [670682889] [2022-04-28 04:43:34,618 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:43:34,618 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-28 04:43:34,618 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:43:34,618 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-28 04:43:34,651 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-28 04:43:34,651 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-28 04:43:34,651 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:34,651 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-28 04:43:34,651 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=179, Unknown=0, NotChecked=0, Total=240 [2022-04-28 04:43:34,651 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-28 04:43:35,436 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:35,436 INFO L93 Difference]: Finished difference Result 140 states and 155 transitions. [2022-04-28 04:43:35,436 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-28 04:43:35,437 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-28 04:43:35,437 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:43:35,437 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-28 04:43:35,437 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 65 transitions. [2022-04-28 04:43:35,438 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-28 04:43:35,438 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 65 transitions. [2022-04-28 04:43:35,438 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 65 transitions. [2022-04-28 04:43:35,490 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:43:35,492 INFO L225 Difference]: With dead ends: 140 [2022-04-28 04:43:35,492 INFO L226 Difference]: Without dead ends: 132 [2022-04-28 04:43:35,492 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 113 GetRequests, 99 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 37 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=61, Invalid=179, Unknown=0, NotChecked=0, Total=240 [2022-04-28 04:43:35,493 INFO L413 NwaCegarLoop]: 33 mSDtfsCounter, 2 mSDsluCounter, 121 mSDsCounter, 0 mSdLazyCounter, 225 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-28 04:43:35,493 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [2 Valid, 154 Invalid, 228 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 225 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-28 04:43:35,493 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 132 states. [2022-04-28 04:43:35,736 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 132 to 130. [2022-04-28 04:43:35,736 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:43:35,736 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-28 04:43:35,736 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-28 04:43:35,737 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-28 04:43:35,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:35,739 INFO L93 Difference]: Finished difference Result 132 states and 147 transitions. [2022-04-28 04:43:35,739 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 147 transitions. [2022-04-28 04:43:35,739 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:35,739 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:35,739 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-28 04:43:35,740 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-28 04:43:35,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:43:35,742 INFO L93 Difference]: Finished difference Result 132 states and 147 transitions. [2022-04-28 04:43:35,742 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 147 transitions. [2022-04-28 04:43:35,742 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:43:35,742 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:43:35,742 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:43:35,742 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:43:35,743 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-28 04:43:35,745 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 130 states to 130 states and 145 transitions. [2022-04-28 04:43:35,746 INFO L78 Accepts]: Start accepts. Automaton has 130 states and 145 transitions. Word has length 57 [2022-04-28 04:43:35,746 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:43:35,746 INFO L495 AbstractCegarLoop]: Abstraction has 130 states and 145 transitions. [2022-04-28 04:43:35,746 INFO L496 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-28 04:43:35,746 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 130 states and 145 transitions. [2022-04-28 04:43:40,058 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-28 04:43:40,058 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 145 transitions. [2022-04-28 04:43:40,059 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 04:43:40,059 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:43:40,059 INFO L195 NwaCegarLoop]: 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-28 04:43:40,075 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-28 04:43:40,275 WARN L477 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-28 04:43:40,275 INFO L420 AbstractCegarLoop]: === Iteration 20 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:43:40,275 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:43:40,275 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 5 times [2022-04-28 04:43:40,275 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:43:40,276 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1562111534] [2022-04-28 04:43:40,276 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:43:40,276 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 6 times [2022-04-28 04:43:40,276 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:43:40,276 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [996866080] [2022-04-28 04:43:40,276 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:43:40,277 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:43:40,284 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:43:40,285 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [337496646] [2022-04-28 04:43:40,285 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:43:40,285 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:43:40,285 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:43:40,286 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-28 04:43:40,286 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-28 04:43:40,653 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-28 04:43:40,653 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:43:40,654 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 33 conjunts are in the unsatisfiable core [2022-04-28 04:43:40,670 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:43:40,671 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:44:02,482 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:44:10,370 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:44:16,389 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:44:37,254 INFO L272 TraceCheckUtils]: 0: Hoare triple {14456#true} call ULTIMATE.init(); {14456#true} is VALID [2022-04-28 04:44:37,254 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-28 04:44:37,254 INFO L290 TraceCheckUtils]: 2: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:44:37,254 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14456#true} {14456#true} #69#return; {14456#true} is VALID [2022-04-28 04:44:37,254 INFO L272 TraceCheckUtils]: 4: Hoare triple {14456#true} call #t~ret8 := main(); {14456#true} is VALID [2022-04-28 04:44:37,255 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-28 04:44:37,255 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-28 04:44:37,255 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-28 04:44:37,255 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-28 04:44:37,255 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-28 04:44:37,256 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-28 04:44:37,256 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-28 04:44:37,256 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-28 04:44:37,256 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-28 04:44:37,257 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-28 04:44:37,257 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-28 04:44:37,257 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-28 04:44:37,258 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-28 04:44:37,258 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-28 04:44:37,258 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-28 04:44:37,258 INFO L290 TraceCheckUtils]: 20: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:44:37,258 INFO L290 TraceCheckUtils]: 21: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:44:37,258 INFO L290 TraceCheckUtils]: 22: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:44:37,259 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-28 04:44:37,259 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-28 04:44:37,260 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-28 04:44:37,260 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-28 04:44:37,260 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-28 04:44:37,260 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-28 04:44:37,261 INFO L290 TraceCheckUtils]: 29: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:44:37,261 INFO L290 TraceCheckUtils]: 30: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:44:37,261 INFO L290 TraceCheckUtils]: 31: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:44:37,261 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-28 04:44:37,261 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-28 04:44:37,262 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-28 04:44:37,262 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-28 04:44:37,262 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-28 04:44:37,262 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-28 04:44:37,262 INFO L290 TraceCheckUtils]: 38: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:44:37,263 INFO L290 TraceCheckUtils]: 39: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:44:37,263 INFO L290 TraceCheckUtils]: 40: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:44:37,263 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-28 04:44:37,263 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-28 04:44:37,264 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-28 04:44:37,265 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-28 04:44:37,265 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-28 04:44:37,266 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-28 04:44:37,266 INFO L290 TraceCheckUtils]: 47: Hoare triple {14456#true} ~cond := #in~cond; {14612#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:44:37,266 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-28 04:44:37,266 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-28 04:44:37,267 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-28 04:44:37,268 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-28 04:44:37,502 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-28 04:44:37,511 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-28 04:44:37,512 INFO L290 TraceCheckUtils]: 54: Hoare triple {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {14639#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:44:37,512 INFO L290 TraceCheckUtils]: 55: Hoare triple {14639#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {14457#false} is VALID [2022-04-28 04:44:37,512 INFO L290 TraceCheckUtils]: 56: Hoare triple {14457#false} assume !false; {14457#false} is VALID [2022-04-28 04:44:37,512 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-28 04:44:37,513 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:44:43,660 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:44:49,577 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:45:26,844 INFO L290 TraceCheckUtils]: 56: Hoare triple {14457#false} assume !false; {14457#false} is VALID [2022-04-28 04:45:26,845 INFO L290 TraceCheckUtils]: 55: Hoare triple {14639#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {14457#false} is VALID [2022-04-28 04:45:26,845 INFO L290 TraceCheckUtils]: 54: Hoare triple {14635#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {14639#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:45:26,846 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-28 04:45:26,847 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-28 04:45:26,847 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-28 04:45:26,848 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-28 04:45:26,848 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-28 04:45:26,849 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-28 04:45:26,849 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-28 04:45:26,849 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-28 04:45:28,852 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-28 04:45:28,862 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-28 04:45:32,336 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-28 04:45:32,374 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-28 04:45:32,374 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 40: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 39: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 38: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:45:32,374 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-28 04:45:32,374 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-28 04:45:32,374 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-28 04:45:32,374 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-28 04:45:32,374 INFO L290 TraceCheckUtils]: 33: Hoare triple {14456#true} assume !!(~x~0 <= ~X~0); {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 31: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 30: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:45:32,374 INFO L290 TraceCheckUtils]: 29: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:45:32,374 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-28 04:45:32,374 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-28 04:45:32,375 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-28 04:45:32,375 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-28 04:45:32,375 INFO L290 TraceCheckUtils]: 24: Hoare triple {14456#true} assume !!(~x~0 <= ~X~0); {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {14456#true} {14456#true} #65#return; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 22: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 21: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 20: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:45:32,375 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-28 04:45:32,375 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-28 04:45:32,375 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-28 04:45:32,375 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {14456#true} {14456#true} #63#return; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 15: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 14: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 13: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:45:32,375 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-28 04:45:32,375 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-28 04:45:32,375 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {14456#true} {14456#true} #61#return; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 9: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,375 INFO L290 TraceCheckUtils]: 8: Hoare triple {14456#true} assume !(0 == ~cond); {14456#true} is VALID [2022-04-28 04:45:32,376 INFO L290 TraceCheckUtils]: 7: Hoare triple {14456#true} ~cond := #in~cond; {14456#true} is VALID [2022-04-28 04:45:32,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-28 04:45:32,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-28 04:45:32,376 INFO L272 TraceCheckUtils]: 4: Hoare triple {14456#true} call #t~ret8 := main(); {14456#true} is VALID [2022-04-28 04:45:32,376 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {14456#true} {14456#true} #69#return; {14456#true} is VALID [2022-04-28 04:45:32,376 INFO L290 TraceCheckUtils]: 2: Hoare triple {14456#true} assume true; {14456#true} is VALID [2022-04-28 04:45:32,376 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-28 04:45:32,376 INFO L272 TraceCheckUtils]: 0: Hoare triple {14456#true} call ULTIMATE.init(); {14456#true} is VALID [2022-04-28 04:45:32,376 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-28 04:45:32,376 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:45:32,376 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [996866080] [2022-04-28 04:45:32,376 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:45:32,376 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [337496646] [2022-04-28 04:45:32,376 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [337496646] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:45:32,377 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:45:32,377 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 13] total 27 [2022-04-28 04:45:32,377 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:45:32,377 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1562111534] [2022-04-28 04:45:32,377 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1562111534] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:45:32,377 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:45:32,377 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [19] imperfect sequences [] total 19 [2022-04-28 04:45:32,377 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1390530084] [2022-04-28 04:45:32,377 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:45:32,377 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-28 04:45:32,377 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:45:32,378 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-28 04:45:32,588 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-28 04:45:32,588 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-04-28 04:45:32,588 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:45:32,589 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-04-28 04:45:32,589 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=113, Invalid=586, Unknown=3, NotChecked=0, Total=702 [2022-04-28 04:45:32,589 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-28 04:45:45,801 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-28 04:45:50,319 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-28 04:45:53,170 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-28 04:46:08,181 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.87s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-28 04:46:10,205 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-28 04:46:19,750 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:19,751 INFO L93 Difference]: Finished difference Result 145 states and 162 transitions. [2022-04-28 04:46:19,751 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 31 states. [2022-04-28 04:46:19,751 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-28 04:46:19,751 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:46:19,751 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-28 04:46:19,752 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 76 transitions. [2022-04-28 04:46:19,752 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-28 04:46:19,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 76 transitions. [2022-04-28 04:46:19,753 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 31 states and 76 transitions. [2022-04-28 04:46:20,287 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-28 04:46:20,289 INFO L225 Difference]: With dead ends: 145 [2022-04-28 04:46:20,289 INFO L226 Difference]: Without dead ends: 135 [2022-04-28 04:46:20,289 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 131 GetRequests, 87 SyntacticMatches, 1 SemanticMatches, 43 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 385 ImplicationChecksByTransitivity, 36.9s TimeCoverageRelationStatistics Valid=361, Invalid=1616, Unknown=3, NotChecked=0, Total=1980 [2022-04-28 04:46:20,291 INFO L413 NwaCegarLoop]: 21 mSDtfsCounter, 37 mSDsluCounter, 101 mSDsCounter, 0 mSdLazyCounter, 368 mSolverCounterSat, 26 mSolverCounterUnsat, 4 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 15.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 40 SdHoareTripleChecker+Valid, 122 SdHoareTripleChecker+Invalid, 398 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 26 IncrementalHoareTripleChecker+Valid, 368 IncrementalHoareTripleChecker+Invalid, 4 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 15.5s IncrementalHoareTripleChecker+Time [2022-04-28 04:46:20,291 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [40 Valid, 122 Invalid, 398 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [26 Valid, 368 Invalid, 4 Unknown, 0 Unchecked, 15.5s Time] [2022-04-28 04:46:20,291 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 135 states. [2022-04-28 04:46:20,591 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 135 to 128. [2022-04-28 04:46:20,591 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:46:20,592 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-28 04:46:20,592 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-28 04:46:20,592 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-28 04:46:20,594 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:20,594 INFO L93 Difference]: Finished difference Result 135 states and 150 transitions. [2022-04-28 04:46:20,594 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 150 transitions. [2022-04-28 04:46:20,594 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:46:20,594 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:46:20,594 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-28 04:46:20,594 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-28 04:46:20,596 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:20,596 INFO L93 Difference]: Finished difference Result 135 states and 150 transitions. [2022-04-28 04:46:20,596 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 150 transitions. [2022-04-28 04:46:20,596 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:46:20,596 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:46:20,596 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:46:20,596 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:46:20,596 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-28 04:46:20,598 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 128 states to 128 states and 141 transitions. [2022-04-28 04:46:20,598 INFO L78 Accepts]: Start accepts. Automaton has 128 states and 141 transitions. Word has length 57 [2022-04-28 04:46:20,598 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:46:20,598 INFO L495 AbstractCegarLoop]: Abstraction has 128 states and 141 transitions. [2022-04-28 04:46:20,598 INFO L496 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-28 04:46:20,598 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 128 states and 141 transitions. [2022-04-28 04:46:25,003 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-28 04:46:25,003 INFO L276 IsEmpty]: Start isEmpty. Operand 128 states and 141 transitions. [2022-04-28 04:46:25,004 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 04:46:25,004 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:46:25,004 INFO L195 NwaCegarLoop]: 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-28 04:46:25,021 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-28 04:46:25,217 WARN L477 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-28 04:46:25,217 INFO L420 AbstractCegarLoop]: === Iteration 21 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:46:25,217 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:46:25,217 INFO L85 PathProgramCache]: Analyzing trace with hash 1124973290, now seen corresponding path program 7 times [2022-04-28 04:46:25,217 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:46:25,217 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [326032662] [2022-04-28 04:46:25,217 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:46:25,218 INFO L85 PathProgramCache]: Analyzing trace with hash 1124973290, now seen corresponding path program 8 times [2022-04-28 04:46:25,218 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:46:25,218 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1772183477] [2022-04-28 04:46:25,218 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:46:25,218 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:46:25,227 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:46:25,227 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1680195174] [2022-04-28 04:46:25,227 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:46:25,227 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:46:25,227 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:46:25,228 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-28 04:46:25,229 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-28 04:46:25,273 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:46:25,273 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:46:25,274 INFO L263 TraceCheckSpWp]: Trace formula consists of 159 conjuncts, 34 conjunts are in the unsatisfiable core [2022-04-28 04:46:25,284 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:46:25,285 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:46:28,209 INFO L272 TraceCheckUtils]: 0: Hoare triple {15676#true} call ULTIMATE.init(); {15676#true} is VALID [2022-04-28 04:46:28,209 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-28 04:46:28,209 INFO L290 TraceCheckUtils]: 2: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,209 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15676#true} {15676#true} #69#return; {15676#true} is VALID [2022-04-28 04:46:28,209 INFO L272 TraceCheckUtils]: 4: Hoare triple {15676#true} call #t~ret8 := main(); {15676#true} is VALID [2022-04-28 04:46:28,209 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-28 04:46:28,209 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-28 04:46:28,210 INFO L290 TraceCheckUtils]: 7: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L290 TraceCheckUtils]: 8: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L290 TraceCheckUtils]: 9: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15676#true} {15676#true} #61#return; {15676#true} is VALID [2022-04-28 04:46:28,210 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-28 04:46:28,210 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-28 04:46:28,210 INFO L290 TraceCheckUtils]: 13: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L290 TraceCheckUtils]: 14: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L290 TraceCheckUtils]: 15: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,210 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15676#true} {15676#true} #63#return; {15676#true} is VALID [2022-04-28 04:46:28,210 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-28 04:46:28,211 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-28 04:46:28,211 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-28 04:46:28,211 INFO L290 TraceCheckUtils]: 20: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,211 INFO L290 TraceCheckUtils]: 21: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,211 INFO L290 TraceCheckUtils]: 22: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,212 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-28 04:46:28,212 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-28 04:46:28,213 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-28 04:46:28,214 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-28 04:46:28,214 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-28 04:46:28,214 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-28 04:46:28,214 INFO L290 TraceCheckUtils]: 29: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,214 INFO L290 TraceCheckUtils]: 30: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,214 INFO L290 TraceCheckUtils]: 31: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,215 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-28 04:46:28,215 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-28 04:46:28,216 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-28 04:46:28,217 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-28 04:46:28,217 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-28 04:46:28,217 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-28 04:46:28,217 INFO L290 TraceCheckUtils]: 38: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,217 INFO L290 TraceCheckUtils]: 39: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,217 INFO L290 TraceCheckUtils]: 40: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,218 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-28 04:46:28,218 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-28 04:46:28,219 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-28 04:46:28,220 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-28 04:46:28,220 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-28 04:46:28,220 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-28 04:46:28,220 INFO L290 TraceCheckUtils]: 47: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:28,220 INFO L290 TraceCheckUtils]: 48: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:28,220 INFO L290 TraceCheckUtils]: 49: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:28,221 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-28 04:46:28,222 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-28 04:46:28,222 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-28 04:46:28,223 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-28 04:46:28,224 INFO L290 TraceCheckUtils]: 54: Hoare triple {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {15853#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:46:28,224 INFO L290 TraceCheckUtils]: 55: Hoare triple {15853#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {15677#false} is VALID [2022-04-28 04:46:28,224 INFO L290 TraceCheckUtils]: 56: Hoare triple {15677#false} assume !false; {15677#false} is VALID [2022-04-28 04:46:28,224 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-28 04:46:28,224 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:46:31,838 INFO L290 TraceCheckUtils]: 56: Hoare triple {15677#false} assume !false; {15677#false} is VALID [2022-04-28 04:46:31,839 INFO L290 TraceCheckUtils]: 55: Hoare triple {15853#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {15677#false} is VALID [2022-04-28 04:46:31,839 INFO L290 TraceCheckUtils]: 54: Hoare triple {15849#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {15853#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:46:31,840 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-28 04:46:31,841 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-28 04:46:31,842 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-28 04:46:31,842 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-28 04:46:31,842 INFO L290 TraceCheckUtils]: 49: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,842 INFO L290 TraceCheckUtils]: 48: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,842 INFO L290 TraceCheckUtils]: 47: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,842 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-28 04:46:31,843 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-28 04:46:31,847 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-28 04:46:31,850 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-28 04:46:31,850 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-28 04:46:31,851 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-28 04:46:31,851 INFO L290 TraceCheckUtils]: 40: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,851 INFO L290 TraceCheckUtils]: 39: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,851 INFO L290 TraceCheckUtils]: 38: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,851 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-28 04:46:31,851 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-28 04:46:31,854 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-28 04:46:31,855 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-28 04:46:31,856 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-28 04:46:31,856 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-28 04:46:31,856 INFO L290 TraceCheckUtils]: 31: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,856 INFO L290 TraceCheckUtils]: 30: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,856 INFO L290 TraceCheckUtils]: 29: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,856 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-28 04:46:31,857 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-28 04:46:31,860 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-28 04:46:31,863 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-28 04:46:31,864 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-28 04:46:31,864 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-28 04:46:31,865 INFO L290 TraceCheckUtils]: 22: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,865 INFO L290 TraceCheckUtils]: 21: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,865 INFO L290 TraceCheckUtils]: 20: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,865 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-28 04:46:31,865 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-28 04:46:31,866 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-28 04:46:31,866 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {15676#true} {15676#true} #63#return; {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 15: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 14: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 13: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,867 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-28 04:46:31,867 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-28 04:46:31,867 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {15676#true} {15676#true} #61#return; {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 9: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 8: Hoare triple {15676#true} assume !(0 == ~cond); {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 7: Hoare triple {15676#true} ~cond := #in~cond; {15676#true} is VALID [2022-04-28 04:46:31,867 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-28 04:46:31,867 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-28 04:46:31,867 INFO L272 TraceCheckUtils]: 4: Hoare triple {15676#true} call #t~ret8 := main(); {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {15676#true} {15676#true} #69#return; {15676#true} is VALID [2022-04-28 04:46:31,867 INFO L290 TraceCheckUtils]: 2: Hoare triple {15676#true} assume true; {15676#true} is VALID [2022-04-28 04:46:31,867 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-28 04:46:31,867 INFO L272 TraceCheckUtils]: 0: Hoare triple {15676#true} call ULTIMATE.init(); {15676#true} is VALID [2022-04-28 04:46:31,868 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-28 04:46:31,868 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:46:31,868 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1772183477] [2022-04-28 04:46:31,868 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:46:31,868 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1680195174] [2022-04-28 04:46:31,868 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1680195174] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:46:31,868 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:46:31,868 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 14] total 23 [2022-04-28 04:46:31,868 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:46:31,868 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [326032662] [2022-04-28 04:46:31,868 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [326032662] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:46:31,868 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:46:31,868 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-28 04:46:31,868 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [210742618] [2022-04-28 04:46:31,869 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:46:31,869 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-28 04:46:31,869 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:46:31,869 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-28 04:46:31,918 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-28 04:46:31,918 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-28 04:46:31,918 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:46:31,919 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-28 04:46:31,919 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=100, Invalid=406, Unknown=0, NotChecked=0, Total=506 [2022-04-28 04:46:31,919 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-28 04:46:39,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:39,067 INFO L93 Difference]: Finished difference Result 141 states and 156 transitions. [2022-04-28 04:46:39,067 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-28 04:46:39,067 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-28 04:46:39,068 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:46:39,068 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-28 04:46:39,069 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2022-04-28 04:46:39,069 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-28 04:46:39,069 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 64 transitions. [2022-04-28 04:46:39,069 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 64 transitions. [2022-04-28 04:46:39,152 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-28 04:46:39,153 INFO L225 Difference]: With dead ends: 141 [2022-04-28 04:46:39,153 INFO L226 Difference]: Without dead ends: 133 [2022-04-28 04:46:39,154 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 115 GetRequests, 90 SyntacticMatches, 2 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 47 ImplicationChecksByTransitivity, 3.9s TimeCoverageRelationStatistics Valid=118, Invalid=482, Unknown=0, NotChecked=0, Total=600 [2022-04-28 04:46:39,154 INFO L413 NwaCegarLoop]: 32 mSDtfsCounter, 8 mSDsluCounter, 202 mSDsCounter, 0 mSdLazyCounter, 392 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.4s 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.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:46:39,154 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [8 Valid, 234 Invalid, 392 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 392 Invalid, 0 Unknown, 0 Unchecked, 2.4s Time] [2022-04-28 04:46:39,155 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 133 states. [2022-04-28 04:46:39,480 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 133 to 132. [2022-04-28 04:46:39,480 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:46:39,480 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-28 04:46:39,480 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-28 04:46:39,480 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-28 04:46:39,496 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:39,496 INFO L93 Difference]: Finished difference Result 133 states and 148 transitions. [2022-04-28 04:46:39,496 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 148 transitions. [2022-04-28 04:46:39,497 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:46:39,497 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:46:39,497 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-28 04:46:39,497 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-28 04:46:39,499 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:46:39,499 INFO L93 Difference]: Finished difference Result 133 states and 148 transitions. [2022-04-28 04:46:39,499 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 148 transitions. [2022-04-28 04:46:39,499 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:46:39,499 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:46:39,499 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:46:39,499 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:46:39,499 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-28 04:46:39,501 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 146 transitions. [2022-04-28 04:46:39,501 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 146 transitions. Word has length 57 [2022-04-28 04:46:39,501 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:46:39,501 INFO L495 AbstractCegarLoop]: Abstraction has 132 states and 146 transitions. [2022-04-28 04:46:39,501 INFO L496 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-28 04:46:39,501 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 132 states and 146 transitions. [2022-04-28 04:46:43,936 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-28 04:46:43,936 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 146 transitions. [2022-04-28 04:46:43,937 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-28 04:46:43,937 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:46:43,937 INFO L195 NwaCegarLoop]: 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-28 04:46:43,958 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-28 04:46:44,158 WARN L477 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-28 04:46:44,159 INFO L420 AbstractCegarLoop]: === Iteration 22 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:46:44,159 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:46:44,159 INFO L85 PathProgramCache]: Analyzing trace with hash -680465044, now seen corresponding path program 5 times [2022-04-28 04:46:44,159 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:46:44,159 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [274648463] [2022-04-28 04:46:44,159 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:46:44,160 INFO L85 PathProgramCache]: Analyzing trace with hash -680465044, now seen corresponding path program 6 times [2022-04-28 04:46:44,160 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:46:44,160 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [490354992] [2022-04-28 04:46:44,160 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:46:44,160 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:46:44,168 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:46:44,168 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [278543124] [2022-04-28 04:46:44,168 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:46:44,168 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:46:44,168 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:46:44,169 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-28 04:46:44,169 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-28 04:46:44,568 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-28 04:46:44,568 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:46:44,570 INFO L263 TraceCheckSpWp]: Trace formula consists of 140 conjuncts, 21 conjunts are in the unsatisfiable core [2022-04-28 04:46:44,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:46:44,586 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:47:04,217 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:47:12,957 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:47:15,626 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:47:17,935 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-28 04:48:19,474 INFO L272 TraceCheckUtils]: 0: Hoare triple {16856#true} call ULTIMATE.init(); {16856#true} is VALID [2022-04-28 04:48:19,475 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-28 04:48:19,475 INFO L290 TraceCheckUtils]: 2: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16856#true} {16856#true} #69#return; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L272 TraceCheckUtils]: 4: Hoare triple {16856#true} call #t~ret8 := main(); {16856#true} is VALID [2022-04-28 04:48:19,475 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-28 04:48:19,475 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-28 04:48:19,475 INFO L290 TraceCheckUtils]: 7: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L290 TraceCheckUtils]: 8: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L290 TraceCheckUtils]: 9: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16856#true} {16856#true} #61#return; {16856#true} is VALID [2022-04-28 04:48:19,475 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-28 04:48:19,475 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-28 04:48:19,475 INFO L290 TraceCheckUtils]: 13: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L290 TraceCheckUtils]: 14: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L290 TraceCheckUtils]: 15: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,475 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {16856#true} {16856#true} #63#return; {16856#true} is VALID [2022-04-28 04:48:19,476 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-28 04:48:19,476 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-28 04:48:19,476 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-28 04:48:19,476 INFO L290 TraceCheckUtils]: 20: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:19,476 INFO L290 TraceCheckUtils]: 21: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:19,476 INFO L290 TraceCheckUtils]: 22: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,477 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16856#true} {16912#(<= 0 main_~x~0)} #65#return; {16912#(<= 0 main_~x~0)} is VALID [2022-04-28 04:48:19,479 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-28 04:48:19,479 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-28 04:48:19,479 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-28 04:48:19,479 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-28 04:48:19,479 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-28 04:48:19,479 INFO L290 TraceCheckUtils]: 29: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:19,479 INFO L290 TraceCheckUtils]: 30: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:19,480 INFO L290 TraceCheckUtils]: 31: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,480 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {16856#true} {16934#(<= 0 main_~X~0)} #65#return; {16934#(<= 0 main_~X~0)} is VALID [2022-04-28 04:48:19,480 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-28 04:48:19,480 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-28 04:48:19,481 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-28 04:48:19,481 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-28 04:48:19,481 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-28 04:48:19,481 INFO L290 TraceCheckUtils]: 38: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:19,481 INFO L290 TraceCheckUtils]: 39: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:19,481 INFO L290 TraceCheckUtils]: 40: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:19,482 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {16856#true} {16934#(<= 0 main_~X~0)} #65#return; {16934#(<= 0 main_~X~0)} is VALID [2022-04-28 04:48:19,482 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-28 04:48:19,482 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-28 04:48:19,483 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-28 04:48:19,484 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-28 04:48:19,484 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-28 04:48:19,484 INFO L290 TraceCheckUtils]: 47: Hoare triple {16856#true} ~cond := #in~cond; {17007#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:48:19,484 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-28 04:48:19,484 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-28 04:48:19,486 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-28 04:48:19,486 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-28 04:48:21,489 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-28 04:48:21,512 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-28 04:48:21,512 INFO L290 TraceCheckUtils]: 54: Hoare triple {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {17034#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:48:21,512 INFO L290 TraceCheckUtils]: 55: Hoare triple {17034#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {16857#false} is VALID [2022-04-28 04:48:21,512 INFO L290 TraceCheckUtils]: 56: Hoare triple {16857#false} assume !false; {16857#false} is VALID [2022-04-28 04:48:21,513 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-28 04:48:21,513 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:48:39,544 INFO L290 TraceCheckUtils]: 56: Hoare triple {16857#false} assume !false; {16857#false} is VALID [2022-04-28 04:48:39,545 INFO L290 TraceCheckUtils]: 55: Hoare triple {17034#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {16857#false} is VALID [2022-04-28 04:48:39,545 INFO L290 TraceCheckUtils]: 54: Hoare triple {17030#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {17034#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:48:39,546 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-28 04:48:39,547 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-28 04:48:39,547 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-28 04:48:39,549 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-28 04:48:39,549 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-28 04:48:39,549 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-28 04:48:39,549 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-28 04:48:39,549 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-28 04:48:39,551 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-28 04:48:39,554 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-28 04:48:39,554 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-28 04:48:39,556 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-28 04:48:39,556 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-28 04:48:39,556 INFO L290 TraceCheckUtils]: 40: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,556 INFO L290 TraceCheckUtils]: 39: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:39,556 INFO L290 TraceCheckUtils]: 38: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:39,556 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-28 04:48:39,556 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-28 04:48:39,556 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-28 04:48:39,556 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-28 04:48:39,556 INFO L290 TraceCheckUtils]: 33: Hoare triple {16856#true} assume !!(~x~0 <= ~X~0); {16856#true} is VALID [2022-04-28 04:48:39,556 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 31: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 30: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 29: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:39,557 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-28 04:48:39,557 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-28 04:48:39,557 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-28 04:48:39,557 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-28 04:48:39,557 INFO L290 TraceCheckUtils]: 24: Hoare triple {16856#true} assume !!(~x~0 <= ~X~0); {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {16856#true} {16856#true} #65#return; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 22: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 21: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 20: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:39,557 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-28 04:48:39,557 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-28 04:48:39,557 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-28 04:48:39,557 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {16856#true} {16856#true} #63#return; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 15: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 14: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:39,557 INFO L290 TraceCheckUtils]: 13: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:39,557 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-28 04:48:39,558 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-28 04:48:39,558 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {16856#true} {16856#true} #61#return; {16856#true} is VALID [2022-04-28 04:48:39,558 INFO L290 TraceCheckUtils]: 9: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,558 INFO L290 TraceCheckUtils]: 8: Hoare triple {16856#true} assume !(0 == ~cond); {16856#true} is VALID [2022-04-28 04:48:39,558 INFO L290 TraceCheckUtils]: 7: Hoare triple {16856#true} ~cond := #in~cond; {16856#true} is VALID [2022-04-28 04:48:39,558 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-28 04:48:39,558 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-28 04:48:39,558 INFO L272 TraceCheckUtils]: 4: Hoare triple {16856#true} call #t~ret8 := main(); {16856#true} is VALID [2022-04-28 04:48:39,558 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {16856#true} {16856#true} #69#return; {16856#true} is VALID [2022-04-28 04:48:39,558 INFO L290 TraceCheckUtils]: 2: Hoare triple {16856#true} assume true; {16856#true} is VALID [2022-04-28 04:48:39,558 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-28 04:48:39,558 INFO L272 TraceCheckUtils]: 0: Hoare triple {16856#true} call ULTIMATE.init(); {16856#true} is VALID [2022-04-28 04:48:39,558 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-28 04:48:39,558 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:48:39,558 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [490354992] [2022-04-28 04:48:39,559 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:48:39,559 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [278543124] [2022-04-28 04:48:39,559 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [278543124] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:48:39,559 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:48:39,559 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 12] total 21 [2022-04-28 04:48:39,559 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:48:39,559 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [274648463] [2022-04-28 04:48:39,559 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [274648463] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:48:39,559 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:48:39,559 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-04-28 04:48:39,559 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [96970075] [2022-04-28 04:48:39,559 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:48:39,559 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-28 04:48:39,560 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:48:39,560 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-28 04:48:41,618 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-28 04:48:41,619 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-28 04:48:41,619 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:48:41,619 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-28 04:48:41,619 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=313, Unknown=1, NotChecked=36, Total=420 [2022-04-28 04:48:41,619 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-28 04:49:24,181 WARN L232 SmtUtils]: Spent 19.50s on a formula simplification. DAG size of input: 61 DAG size of output: 54 (called from [L 360] de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate) [2022-04-28 04:49:24,957 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:49:24,957 INFO L93 Difference]: Finished difference Result 139 states and 152 transitions. [2022-04-28 04:49:24,957 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-28 04:49:24,957 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-28 04:49:24,957 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:49:24,958 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-28 04:49:24,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 42 transitions. [2022-04-28 04:49:24,958 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-28 04:49:24,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 42 transitions. [2022-04-28 04:49:24,959 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 42 transitions. [2022-04-28 04:49:27,036 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-28 04:49:27,038 INFO L225 Difference]: With dead ends: 139 [2022-04-28 04:49:27,038 INFO L226 Difference]: Without dead ends: 131 [2022-04-28 04:49:27,038 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 123 GetRequests, 93 SyntacticMatches, 1 SemanticMatches, 29 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 151 ImplicationChecksByTransitivity, 44.2s TimeCoverageRelationStatistics Valid=180, Invalid=688, Unknown=6, NotChecked=56, Total=930 [2022-04-28 04:49:27,039 INFO L413 NwaCegarLoop]: 23 mSDtfsCounter, 21 mSDsluCounter, 147 mSDsCounter, 0 mSdLazyCounter, 152 mSolverCounterSat, 10 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 170 SdHoareTripleChecker+Invalid, 184 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 10 IncrementalHoareTripleChecker+Valid, 152 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 22 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-04-28 04:49:27,039 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [21 Valid, 170 Invalid, 184 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [10 Valid, 152 Invalid, 0 Unknown, 22 Unchecked, 1.0s Time] [2022-04-28 04:49:27,039 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 131 states. [2022-04-28 04:49:27,369 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 131 to 126. [2022-04-28 04:49:27,369 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:49:27,369 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-28 04:49:27,369 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-28 04:49:27,369 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-28 04:49:27,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:49:27,371 INFO L93 Difference]: Finished difference Result 131 states and 144 transitions. [2022-04-28 04:49:27,371 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 144 transitions. [2022-04-28 04:49:27,371 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:49:27,371 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:49:27,372 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-28 04:49:27,372 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-28 04:49:27,373 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:49:27,373 INFO L93 Difference]: Finished difference Result 131 states and 144 transitions. [2022-04-28 04:49:27,373 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 144 transitions. [2022-04-28 04:49:27,373 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:49:27,373 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:49:27,374 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:49:27,374 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:49:27,374 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-28 04:49:27,375 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 126 states to 126 states and 138 transitions. [2022-04-28 04:49:27,376 INFO L78 Accepts]: Start accepts. Automaton has 126 states and 138 transitions. Word has length 57 [2022-04-28 04:49:27,377 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:49:27,377 INFO L495 AbstractCegarLoop]: Abstraction has 126 states and 138 transitions. [2022-04-28 04:49:27,377 INFO L496 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-28 04:49:27,377 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 126 states and 138 transitions. [2022-04-28 04:49:29,163 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-28 04:49:29,164 INFO L276 IsEmpty]: Start isEmpty. Operand 126 states and 138 transitions. [2022-04-28 04:49:29,164 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-28 04:49:29,164 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:49:29,164 INFO L195 NwaCegarLoop]: 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-28 04:49:29,171 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-28 04:49:29,366 WARN L477 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-28 04:49:29,367 INFO L420 AbstractCegarLoop]: === Iteration 23 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:49:29,367 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:49:29,367 INFO L85 PathProgramCache]: Analyzing trace with hash 1830651545, now seen corresponding path program 7 times [2022-04-28 04:49:29,367 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:49:29,367 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1381418971] [2022-04-28 04:49:29,367 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:49:29,367 INFO L85 PathProgramCache]: Analyzing trace with hash 1830651545, now seen corresponding path program 8 times [2022-04-28 04:49:29,367 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:49:29,367 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [756506168] [2022-04-28 04:49:29,368 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:49:29,368 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:49:29,380 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:49:29,380 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [310529858] [2022-04-28 04:49:29,380 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:49:29,380 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:49:29,380 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:49:29,381 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-28 04:49:29,383 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-28 04:49:29,425 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:49:29,425 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:49:29,426 INFO L263 TraceCheckSpWp]: Trace formula consists of 160 conjuncts, 56 conjunts are in the unsatisfiable core [2022-04-28 04:49:29,440 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:49:29,441 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:49:57,346 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:50:00,061 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:50:06,961 INFO L272 TraceCheckUtils]: 0: Hoare triple {18030#true} call ULTIMATE.init(); {18030#true} is VALID [2022-04-28 04:50:06,961 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-28 04:50:06,961 INFO L290 TraceCheckUtils]: 2: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:06,961 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18030#true} {18030#true} #69#return; {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L272 TraceCheckUtils]: 4: Hoare triple {18030#true} call #t~ret8 := main(); {18030#true} is VALID [2022-04-28 04:50:06,962 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-28 04:50:06,962 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-28 04:50:06,962 INFO L290 TraceCheckUtils]: 7: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L290 TraceCheckUtils]: 8: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L290 TraceCheckUtils]: 9: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {18030#true} {18030#true} #61#return; {18030#true} is VALID [2022-04-28 04:50:06,962 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-28 04:50:06,962 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-28 04:50:06,962 INFO L290 TraceCheckUtils]: 13: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L290 TraceCheckUtils]: 14: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L290 TraceCheckUtils]: 15: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:06,962 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {18030#true} {18030#true} #63#return; {18030#true} is VALID [2022-04-28 04:50:06,963 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-28 04:50:06,963 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-28 04:50:06,963 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-28 04:50:06,963 INFO L290 TraceCheckUtils]: 20: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:06,963 INFO L290 TraceCheckUtils]: 21: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:06,963 INFO L290 TraceCheckUtils]: 22: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:06,964 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-28 04:50:06,964 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-28 04:50:06,965 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-28 04:50:06,965 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-28 04:50:06,966 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-28 04:50:06,966 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-28 04:50:06,966 INFO L290 TraceCheckUtils]: 29: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:50:06,966 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-28 04:50:06,967 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-28 04:50:06,969 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-28 04:50:06,969 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-28 04:50:06,970 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-28 04:50:06,972 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-28 04:50:06,972 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-28 04:50:06,972 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-28 04:50:06,972 INFO L290 TraceCheckUtils]: 38: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:50:06,973 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-28 04:50:06,973 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-28 04:50:06,974 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-28 04:50:06,974 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-28 04:50:06,975 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-28 04:50:06,977 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-28 04:50:06,977 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-28 04:50:06,977 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-28 04:50:06,978 INFO L290 TraceCheckUtils]: 47: Hoare triple {18030#true} ~cond := #in~cond; {18125#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:50:06,978 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-28 04:50:06,978 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-28 04:50:06,979 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-28 04:50:06,979 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-28 04:50:06,980 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-28 04:50:06,983 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-28 04:50:06,987 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-28 04:50:06,990 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-28 04:50:06,990 INFO L290 TraceCheckUtils]: 56: Hoare triple {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {18219#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:50:06,991 INFO L290 TraceCheckUtils]: 57: Hoare triple {18219#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {18031#false} is VALID [2022-04-28 04:50:06,991 INFO L290 TraceCheckUtils]: 58: Hoare triple {18031#false} assume !false; {18031#false} is VALID [2022-04-28 04:50:06,991 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-28 04:50:06,991 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:50:12,730 INFO L290 TraceCheckUtils]: 58: Hoare triple {18031#false} assume !false; {18031#false} is VALID [2022-04-28 04:50:12,731 INFO L290 TraceCheckUtils]: 57: Hoare triple {18219#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {18031#false} is VALID [2022-04-28 04:50:12,731 INFO L290 TraceCheckUtils]: 56: Hoare triple {18215#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {18219#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:50:12,732 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-28 04:50:12,733 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-28 04:50:12,735 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-28 04:50:12,736 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-28 04:50:12,737 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-28 04:50:12,737 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-28 04:50:12,738 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-28 04:50:12,738 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-28 04:50:12,738 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-28 04:50:12,738 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-28 04:50:12,739 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-28 04:50:12,739 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-28 04:50:12,739 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-28 04:50:12,739 INFO L290 TraceCheckUtils]: 42: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-28 04:50:12,739 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-28 04:50:12,739 INFO L290 TraceCheckUtils]: 40: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,739 INFO L290 TraceCheckUtils]: 39: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 38: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 INFO L290 TraceCheckUtils]: 33: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 31: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 30: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 29: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 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-28 04:50:12,740 INFO L290 TraceCheckUtils]: 24: Hoare triple {18030#true} assume !!(~x~0 <= ~X~0); {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {18030#true} {18030#true} #65#return; {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 22: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 21: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:12,740 INFO L290 TraceCheckUtils]: 20: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:12,741 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-28 04:50:12,741 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-28 04:50:12,741 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-28 04:50:12,741 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {18030#true} {18030#true} #63#return; {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 15: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 14: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 13: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:12,741 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-28 04:50:12,741 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-28 04:50:12,741 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {18030#true} {18030#true} #61#return; {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 9: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 8: Hoare triple {18030#true} assume !(0 == ~cond); {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 7: Hoare triple {18030#true} ~cond := #in~cond; {18030#true} is VALID [2022-04-28 04:50:12,741 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-28 04:50:12,741 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-28 04:50:12,741 INFO L272 TraceCheckUtils]: 4: Hoare triple {18030#true} call #t~ret8 := main(); {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {18030#true} {18030#true} #69#return; {18030#true} is VALID [2022-04-28 04:50:12,741 INFO L290 TraceCheckUtils]: 2: Hoare triple {18030#true} assume true; {18030#true} is VALID [2022-04-28 04:50:12,741 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-28 04:50:12,741 INFO L272 TraceCheckUtils]: 0: Hoare triple {18030#true} call ULTIMATE.init(); {18030#true} is VALID [2022-04-28 04:50:12,742 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-28 04:50:12,742 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:50:12,742 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [756506168] [2022-04-28 04:50:12,742 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:50:12,742 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [310529858] [2022-04-28 04:50:12,742 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [310529858] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:50:12,742 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:50:12,742 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [19, 10] total 24 [2022-04-28 04:50:12,742 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:50:12,742 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1381418971] [2022-04-28 04:50:12,742 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1381418971] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:50:12,742 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:50:12,743 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [19] imperfect sequences [] total 19 [2022-04-28 04:50:12,743 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1757414023] [2022-04-28 04:50:12,743 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:50:12,743 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-28 04:50:12,743 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:50:12,743 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-28 04:50:12,795 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-28 04:50:12,795 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-04-28 04:50:12,796 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:50:12,796 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-04-28 04:50:12,796 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=478, Unknown=1, NotChecked=0, Total=552 [2022-04-28 04:50:12,796 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-28 04:50:20,658 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-28 04:50:27,343 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:50:27,343 INFO L93 Difference]: Finished difference Result 143 states and 156 transitions. [2022-04-28 04:50:27,343 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-04-28 04:50:27,343 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-28 04:50:27,343 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:50:27,344 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-28 04:50:27,344 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 66 transitions. [2022-04-28 04:50:27,344 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-28 04:50:27,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 66 transitions. [2022-04-28 04:50:27,345 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 19 states and 66 transitions. [2022-04-28 04:50:27,429 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:50:27,431 INFO L225 Difference]: With dead ends: 143 [2022-04-28 04:50:27,431 INFO L226 Difference]: Without dead ends: 141 [2022-04-28 04:50:27,431 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 91 SyntacticMatches, 4 SemanticMatches, 26 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 119 ImplicationChecksByTransitivity, 6.9s TimeCoverageRelationStatistics Valid=101, Invalid=654, Unknown=1, NotChecked=0, Total=756 [2022-04-28 04:50:27,431 INFO L413 NwaCegarLoop]: 25 mSDtfsCounter, 20 mSDsluCounter, 181 mSDsCounter, 0 mSdLazyCounter, 511 mSolverCounterSat, 8 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 5.7s 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.7s IncrementalHoareTripleChecker+Time [2022-04-28 04:50:27,431 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [23 Valid, 206 Invalid, 520 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 511 Invalid, 1 Unknown, 0 Unchecked, 5.7s Time] [2022-04-28 04:50:27,432 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 141 states. [2022-04-28 04:50:27,787 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 141 to 139. [2022-04-28 04:50:27,787 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:50:27,787 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-28 04:50:27,787 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-28 04:50:27,788 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-28 04:50:27,789 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:50:27,789 INFO L93 Difference]: Finished difference Result 141 states and 154 transitions. [2022-04-28 04:50:27,789 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 154 transitions. [2022-04-28 04:50:27,789 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:50:27,789 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:50:27,790 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-28 04:50:27,790 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-28 04:50:27,791 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:50:27,791 INFO L93 Difference]: Finished difference Result 141 states and 154 transitions. [2022-04-28 04:50:27,791 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 154 transitions. [2022-04-28 04:50:27,791 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:50:27,792 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:50:27,792 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:50:27,792 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:50:27,792 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-28 04:50:27,793 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 139 states to 139 states and 151 transitions. [2022-04-28 04:50:27,793 INFO L78 Accepts]: Start accepts. Automaton has 139 states and 151 transitions. Word has length 59 [2022-04-28 04:50:27,793 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:50:27,793 INFO L495 AbstractCegarLoop]: Abstraction has 139 states and 151 transitions. [2022-04-28 04:50:27,794 INFO L496 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-28 04:50:27,794 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 139 states and 151 transitions. [2022-04-28 04:50:29,940 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-28 04:50:29,941 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 151 transitions. [2022-04-28 04:50:29,941 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-28 04:50:29,941 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:50:29,941 INFO L195 NwaCegarLoop]: 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-28 04:50:29,958 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (23)] Ended with exit code 0 [2022-04-28 04:50:30,142 WARN L477 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-28 04:50:30,142 INFO L420 AbstractCegarLoop]: === Iteration 24 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:50:30,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:50:30,142 INFO L85 PathProgramCache]: Analyzing trace with hash -689308389, now seen corresponding path program 15 times [2022-04-28 04:50:30,142 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:50:30,142 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [265936844] [2022-04-28 04:50:30,143 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:50:30,143 INFO L85 PathProgramCache]: Analyzing trace with hash -689308389, now seen corresponding path program 16 times [2022-04-28 04:50:30,143 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:50:30,143 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1072259654] [2022-04-28 04:50:30,143 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:50:30,143 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:50:30,152 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:50:30,152 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1550947619] [2022-04-28 04:50:30,152 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-28 04:50:30,152 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:50:30,152 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:50:30,153 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-28 04:50:30,154 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-28 04:50:30,203 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-28 04:50:30,203 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:50:30,203 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-28 04:50:30,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:50:30,217 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:50:58,859 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:51:03,544 INFO L272 TraceCheckUtils]: 0: Hoare triple {19261#true} call ULTIMATE.init(); {19261#true} is VALID [2022-04-28 04:51:03,544 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-28 04:51:03,544 INFO L290 TraceCheckUtils]: 2: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:03,544 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {19261#true} {19261#true} #69#return; {19261#true} is VALID [2022-04-28 04:51:03,544 INFO L272 TraceCheckUtils]: 4: Hoare triple {19261#true} call #t~ret8 := main(); {19261#true} is VALID [2022-04-28 04:51:03,544 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-28 04:51:03,544 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-28 04:51:03,544 INFO L290 TraceCheckUtils]: 7: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L290 TraceCheckUtils]: 8: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L290 TraceCheckUtils]: 9: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {19261#true} {19261#true} #61#return; {19261#true} is VALID [2022-04-28 04:51:03,545 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-28 04:51:03,545 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-28 04:51:03,545 INFO L290 TraceCheckUtils]: 13: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L290 TraceCheckUtils]: 14: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L290 TraceCheckUtils]: 15: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:03,545 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {19261#true} {19261#true} #63#return; {19261#true} is VALID [2022-04-28 04:51:03,545 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-28 04:51:03,546 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-28 04:51:03,546 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-28 04:51:03,546 INFO L290 TraceCheckUtils]: 20: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:03,546 INFO L290 TraceCheckUtils]: 21: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:03,546 INFO L290 TraceCheckUtils]: 22: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:03,547 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-28 04:51:03,547 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-28 04:51:03,548 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-28 04:51:03,548 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-28 04:51:03,549 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-28 04:51:03,549 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-28 04:51:03,549 INFO L290 TraceCheckUtils]: 29: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:03,549 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-28 04:51:03,550 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-28 04:51:03,550 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-28 04:51:03,551 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-28 04:51:03,551 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-28 04:51:03,552 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-28 04:51:03,552 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-28 04:51:03,552 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-28 04:51:03,552 INFO L290 TraceCheckUtils]: 38: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:03,553 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-28 04:51:03,553 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-28 04:51:03,553 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-28 04:51:03,554 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-28 04:51:03,555 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-28 04:51:03,555 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-28 04:51:03,555 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-28 04:51:03,555 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-28 04:51:03,556 INFO L290 TraceCheckUtils]: 47: Hoare triple {19261#true} ~cond := #in~cond; {19357#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:03,556 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-28 04:51:03,556 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-28 04:51:03,558 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-28 04:51:03,558 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-28 04:51:03,559 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-28 04:51:03,561 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-28 04:51:03,564 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-28 04:51:03,567 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-28 04:51:03,567 INFO L290 TraceCheckUtils]: 56: Hoare triple {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {19451#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:03,567 INFO L290 TraceCheckUtils]: 57: Hoare triple {19451#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {19262#false} is VALID [2022-04-28 04:51:03,567 INFO L290 TraceCheckUtils]: 58: Hoare triple {19262#false} assume !false; {19262#false} is VALID [2022-04-28 04:51:03,568 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-28 04:51:03,568 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:51:09,937 INFO L290 TraceCheckUtils]: 58: Hoare triple {19262#false} assume !false; {19262#false} is VALID [2022-04-28 04:51:09,937 INFO L290 TraceCheckUtils]: 57: Hoare triple {19451#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {19262#false} is VALID [2022-04-28 04:51:09,938 INFO L290 TraceCheckUtils]: 56: Hoare triple {19447#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {19451#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:09,938 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-28 04:51:09,939 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-28 04:51:09,956 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-28 04:51:09,960 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-28 04:51:09,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-28 04:51:09,961 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-28 04:51:09,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-28 04:51:09,962 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-28 04:51:09,962 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-28 04:51:09,962 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-28 04:51:09,963 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-28 04:51:09,963 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-28 04:51:09,963 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-28 04:51:09,964 INFO L290 TraceCheckUtils]: 42: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 40: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 39: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 38: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 INFO L290 TraceCheckUtils]: 33: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 31: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 30: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L290 TraceCheckUtils]: 29: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 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-28 04:51:09,964 INFO L290 TraceCheckUtils]: 24: Hoare triple {19261#true} assume !!(~x~0 <= ~X~0); {19261#true} is VALID [2022-04-28 04:51:09,964 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {19261#true} {19261#true} #65#return; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 22: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 21: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 20: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:09,965 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-28 04:51:09,965 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-28 04:51:09,965 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-28 04:51:09,965 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {19261#true} {19261#true} #63#return; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 15: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 14: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 13: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:09,965 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-28 04:51:09,965 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-28 04:51:09,965 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {19261#true} {19261#true} #61#return; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 9: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 8: Hoare triple {19261#true} assume !(0 == ~cond); {19261#true} is VALID [2022-04-28 04:51:09,965 INFO L290 TraceCheckUtils]: 7: Hoare triple {19261#true} ~cond := #in~cond; {19261#true} is VALID [2022-04-28 04:51:09,965 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-28 04:51:09,965 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-28 04:51:09,965 INFO L272 TraceCheckUtils]: 4: Hoare triple {19261#true} call #t~ret8 := main(); {19261#true} is VALID [2022-04-28 04:51:09,966 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {19261#true} {19261#true} #69#return; {19261#true} is VALID [2022-04-28 04:51:09,966 INFO L290 TraceCheckUtils]: 2: Hoare triple {19261#true} assume true; {19261#true} is VALID [2022-04-28 04:51:09,966 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-28 04:51:09,966 INFO L272 TraceCheckUtils]: 0: Hoare triple {19261#true} call ULTIMATE.init(); {19261#true} is VALID [2022-04-28 04:51:09,966 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-28 04:51:09,966 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:51:09,966 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1072259654] [2022-04-28 04:51:09,966 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:51:09,966 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1550947619] [2022-04-28 04:51:09,966 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1550947619] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:51:09,966 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:51:09,966 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [20, 11] total 26 [2022-04-28 04:51:09,966 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:51:09,966 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [265936844] [2022-04-28 04:51:09,967 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [265936844] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:51:09,967 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:51:09,967 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [20] imperfect sequences [] total 20 [2022-04-28 04:51:09,967 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [83017161] [2022-04-28 04:51:09,967 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:51:09,967 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-28 04:51:09,967 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:51:09,967 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-28 04:51:10,017 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-28 04:51:10,017 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 20 states [2022-04-28 04:51:10,017 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:51:10,018 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 20 interpolants. [2022-04-28 04:51:10,018 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=88, Invalid=562, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:51:10,018 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-28 04:51:21,954 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:21,954 INFO L93 Difference]: Finished difference Result 150 states and 162 transitions. [2022-04-28 04:51:21,954 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-04-28 04:51:21,955 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-28 04:51:21,955 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:51:21,955 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-28 04:51:21,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 65 transitions. [2022-04-28 04:51:21,955 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-28 04:51:21,956 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 65 transitions. [2022-04-28 04:51:21,956 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 19 states and 65 transitions. [2022-04-28 04:51:22,029 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:51:22,030 INFO L225 Difference]: With dead ends: 150 [2022-04-28 04:51:22,030 INFO L226 Difference]: Without dead ends: 148 [2022-04-28 04:51:22,031 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 90 SyntacticMatches, 3 SemanticMatches, 28 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 124 ImplicationChecksByTransitivity, 4.8s TimeCoverageRelationStatistics Valid=118, Invalid=752, Unknown=0, NotChecked=0, Total=870 [2022-04-28 04:51:22,031 INFO L413 NwaCegarLoop]: 24 mSDtfsCounter, 19 mSDsluCounter, 233 mSDsCounter, 0 mSdLazyCounter, 661 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.3s 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, 4.4s IncrementalHoareTripleChecker+Time [2022-04-28 04:51:22,031 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [20 Valid, 257 Invalid, 669 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 661 Invalid, 0 Unknown, 0 Unchecked, 4.4s Time] [2022-04-28 04:51:22,031 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 148 states. [2022-04-28 04:51:22,412 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 148 to 146. [2022-04-28 04:51:22,412 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:51:22,412 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-28 04:51:22,413 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-28 04:51:22,413 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-28 04:51:22,414 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:22,414 INFO L93 Difference]: Finished difference Result 148 states and 160 transitions. [2022-04-28 04:51:22,414 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 160 transitions. [2022-04-28 04:51:22,415 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:51:22,415 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:51:22,415 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-28 04:51:22,415 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-28 04:51:22,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:22,416 INFO L93 Difference]: Finished difference Result 148 states and 160 transitions. [2022-04-28 04:51:22,417 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 160 transitions. [2022-04-28 04:51:22,417 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:51:22,417 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:51:22,417 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:51:22,417 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:51:22,417 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-28 04:51:22,419 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 146 states to 146 states and 158 transitions. [2022-04-28 04:51:22,419 INFO L78 Accepts]: Start accepts. Automaton has 146 states and 158 transitions. Word has length 59 [2022-04-28 04:51:22,419 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:51:22,419 INFO L495 AbstractCegarLoop]: Abstraction has 146 states and 158 transitions. [2022-04-28 04:51:22,419 INFO L496 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-28 04:51:22,419 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 146 states and 158 transitions. [2022-04-28 04:51:24,933 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 158 edges. 157 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-28 04:51:24,933 INFO L276 IsEmpty]: Start isEmpty. Operand 146 states and 158 transitions. [2022-04-28 04:51:24,935 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-28 04:51:24,935 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:51:24,935 INFO L195 NwaCegarLoop]: 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-28 04:51:24,963 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-28 04:51:25,151 WARN L477 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-28 04:51:25,152 INFO L420 AbstractCegarLoop]: === Iteration 25 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:51:25,152 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:51:25,152 INFO L85 PathProgramCache]: Analyzing trace with hash 809583191, now seen corresponding path program 17 times [2022-04-28 04:51:25,152 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:51:25,152 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [218570881] [2022-04-28 04:51:25,152 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:51:25,152 INFO L85 PathProgramCache]: Analyzing trace with hash 809583191, now seen corresponding path program 18 times [2022-04-28 04:51:25,152 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:51:25,152 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2111791109] [2022-04-28 04:51:25,152 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:51:25,153 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:51:25,160 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:51:25,160 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1140151708] [2022-04-28 04:51:25,160 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-28 04:51:25,161 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:51:25,161 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:51:25,161 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-28 04:51:25,162 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-28 04:51:25,205 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 5 check-sat command(s) [2022-04-28 04:51:25,205 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:51:25,206 INFO L263 TraceCheckSpWp]: Trace formula consists of 162 conjuncts, 51 conjunts are in the unsatisfiable core [2022-04-28 04:51:25,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:51:25,217 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:51:28,402 INFO L272 TraceCheckUtils]: 0: Hoare triple {20536#true} call ULTIMATE.init(); {20536#true} is VALID [2022-04-28 04:51:28,402 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-28 04:51:28,402 INFO L290 TraceCheckUtils]: 2: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:28,402 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {20536#true} {20536#true} #69#return; {20536#true} is VALID [2022-04-28 04:51:28,402 INFO L272 TraceCheckUtils]: 4: Hoare triple {20536#true} call #t~ret8 := main(); {20536#true} is VALID [2022-04-28 04:51:28,402 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-28 04:51:28,402 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-28 04:51:28,403 INFO L290 TraceCheckUtils]: 7: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L290 TraceCheckUtils]: 8: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L290 TraceCheckUtils]: 9: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {20536#true} {20536#true} #61#return; {20536#true} is VALID [2022-04-28 04:51:28,403 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-28 04:51:28,403 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-28 04:51:28,403 INFO L290 TraceCheckUtils]: 13: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L290 TraceCheckUtils]: 14: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L290 TraceCheckUtils]: 15: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:28,403 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {20536#true} {20536#true} #63#return; {20536#true} is VALID [2022-04-28 04:51:28,403 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-28 04:51:28,404 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-28 04:51:28,404 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-28 04:51:28,404 INFO L290 TraceCheckUtils]: 20: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:28,404 INFO L290 TraceCheckUtils]: 21: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:28,404 INFO L290 TraceCheckUtils]: 22: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:28,405 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-28 04:51:28,405 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-28 04:51:28,406 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-28 04:51:28,406 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-28 04:51:28,407 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-28 04:51:28,407 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-28 04:51:28,407 INFO L290 TraceCheckUtils]: 29: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:28,407 INFO L290 TraceCheckUtils]: 30: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:28,407 INFO L290 TraceCheckUtils]: 31: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:28,408 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-28 04:51:28,408 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-28 04:51:28,409 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-28 04:51:28,409 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-28 04:51:28,410 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-28 04:51:28,410 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-28 04:51:28,410 INFO L290 TraceCheckUtils]: 38: Hoare triple {20536#true} ~cond := #in~cond; {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:28,410 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-28 04:51:28,410 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-28 04:51:28,411 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-28 04:51:28,411 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-28 04:51:28,412 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-28 04:51:28,413 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-28 04:51:28,413 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-28 04:51:28,413 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-28 04:51:28,413 INFO L290 TraceCheckUtils]: 47: Hoare triple {20536#true} ~cond := #in~cond; {20661#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:28,414 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-28 04:51:28,414 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-28 04:51:28,418 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-28 04:51:28,420 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-28 04:51:28,421 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-28 04:51:28,422 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-28 04:51:28,422 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-28 04:51:28,423 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-28 04:51:28,424 INFO L290 TraceCheckUtils]: 56: Hoare triple {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {20724#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:28,424 INFO L290 TraceCheckUtils]: 57: Hoare triple {20724#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {20537#false} is VALID [2022-04-28 04:51:28,424 INFO L290 TraceCheckUtils]: 58: Hoare triple {20537#false} assume !false; {20537#false} is VALID [2022-04-28 04:51:28,424 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-28 04:51:28,424 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-28 04:51:34,331 INFO L290 TraceCheckUtils]: 58: Hoare triple {20537#false} assume !false; {20537#false} is VALID [2022-04-28 04:51:34,331 INFO L290 TraceCheckUtils]: 57: Hoare triple {20724#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {20537#false} is VALID [2022-04-28 04:51:34,331 INFO L290 TraceCheckUtils]: 56: Hoare triple {20720#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {20724#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-28 04:51:34,332 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-28 04:51:34,333 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-28 04:51:34,336 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-28 04:51:34,337 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-28 04:51:34,337 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-28 04:51:34,338 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-28 04:51:34,338 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-28 04:51:34,338 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-28 04:51:34,339 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-28 04:51:34,339 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-28 04:51:34,340 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-28 04:51:34,340 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-28 04:51:34,340 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-28 04:51:34,340 INFO L290 TraceCheckUtils]: 42: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-28 04:51:34,340 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-28 04:51:34,340 INFO L290 TraceCheckUtils]: 40: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,340 INFO L290 TraceCheckUtils]: 39: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:34,340 INFO L290 TraceCheckUtils]: 38: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:34,340 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-28 04:51:34,340 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-28 04:51:34,340 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-28 04:51:34,340 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-28 04:51:34,340 INFO L290 TraceCheckUtils]: 33: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 31: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 30: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 29: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:34,341 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-28 04:51:34,341 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-28 04:51:34,341 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-28 04:51:34,341 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-28 04:51:34,341 INFO L290 TraceCheckUtils]: 24: Hoare triple {20536#true} assume !!(~x~0 <= ~X~0); {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {20536#true} {20536#true} #65#return; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 22: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 21: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 20: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:34,341 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-28 04:51:34,341 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-28 04:51:34,341 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-28 04:51:34,341 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {20536#true} {20536#true} #63#return; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 15: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 14: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:34,341 INFO L290 TraceCheckUtils]: 13: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:34,342 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-28 04:51:34,342 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-28 04:51:34,342 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {20536#true} {20536#true} #61#return; {20536#true} is VALID [2022-04-28 04:51:34,342 INFO L290 TraceCheckUtils]: 9: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,342 INFO L290 TraceCheckUtils]: 8: Hoare triple {20536#true} assume !(0 == ~cond); {20536#true} is VALID [2022-04-28 04:51:34,342 INFO L290 TraceCheckUtils]: 7: Hoare triple {20536#true} ~cond := #in~cond; {20536#true} is VALID [2022-04-28 04:51:34,342 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-28 04:51:34,342 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-28 04:51:34,342 INFO L272 TraceCheckUtils]: 4: Hoare triple {20536#true} call #t~ret8 := main(); {20536#true} is VALID [2022-04-28 04:51:34,342 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {20536#true} {20536#true} #69#return; {20536#true} is VALID [2022-04-28 04:51:34,342 INFO L290 TraceCheckUtils]: 2: Hoare triple {20536#true} assume true; {20536#true} is VALID [2022-04-28 04:51:34,342 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-28 04:51:34,342 INFO L272 TraceCheckUtils]: 0: Hoare triple {20536#true} call ULTIMATE.init(); {20536#true} is VALID [2022-04-28 04:51:34,342 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-28 04:51:34,342 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-28 04:51:34,342 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2111791109] [2022-04-28 04:51:34,343 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-28 04:51:34,343 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1140151708] [2022-04-28 04:51:34,343 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1140151708] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-28 04:51:34,343 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-28 04:51:34,343 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [18, 10] total 23 [2022-04-28 04:51:34,343 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-28 04:51:34,343 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [218570881] [2022-04-28 04:51:34,343 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [218570881] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-28 04:51:34,343 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-28 04:51:34,343 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [18] imperfect sequences [] total 18 [2022-04-28 04:51:34,343 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1356478422] [2022-04-28 04:51:34,343 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-28 04:51:34,343 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-28 04:51:34,344 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-28 04:51:34,344 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-28 04:51:34,399 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-28 04:51:34,399 INFO L571 AbstractCegarLoop]: INTERPOLANT automaton has 18 states [2022-04-28 04:51:34,399 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-28 04:51:34,399 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 18 interpolants. [2022-04-28 04:51:34,399 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=435, Unknown=0, NotChecked=0, Total=506 [2022-04-28 04:51:34,400 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) [2022-04-28 04:51:43,961 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:43,961 INFO L93 Difference]: Finished difference Result 163 states and 175 transitions. [2022-04-28 04:51:43,961 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2022-04-28 04:51:43,961 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-28 04:51:43,961 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-28 04:51:43,961 INFO L82 GeneralOperation]: Start removeUnreachable. 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) [2022-04-28 04:51:43,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 65 transitions. [2022-04-28 04:51:43,962 INFO L82 GeneralOperation]: Start removeUnreachable. 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) [2022-04-28 04:51:43,963 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 65 transitions. [2022-04-28 04:51:43,963 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 18 states and 65 transitions. [2022-04-28 04:51:44,055 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:51:44,057 INFO L225 Difference]: With dead ends: 163 [2022-04-28 04:51:44,057 INFO L226 Difference]: Without dead ends: 161 [2022-04-28 04:51:44,057 INFO L412 NwaCegarLoop]: 0 DeclaredPredicates, 120 GetRequests, 92 SyntacticMatches, 4 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 67 ImplicationChecksByTransitivity, 3.7s TimeCoverageRelationStatistics Valid=91, Invalid=559, Unknown=0, NotChecked=0, Total=650 [2022-04-28 04:51:44,058 INFO L413 NwaCegarLoop]: 24 mSDtfsCounter, 17 mSDsluCounter, 203 mSDsCounter, 0 mSdLazyCounter, 583 mSolverCounterSat, 7 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 3.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 19 SdHoareTripleChecker+Valid, 227 SdHoareTripleChecker+Invalid, 590 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Valid, 583 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 3.6s IncrementalHoareTripleChecker+Time [2022-04-28 04:51:44,058 INFO L414 NwaCegarLoop]: SdHoareTripleChecker [19 Valid, 227 Invalid, 590 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [7 Valid, 583 Invalid, 0 Unknown, 0 Unchecked, 3.6s Time] [2022-04-28 04:51:44,058 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 161 states. [2022-04-28 04:51:44,419 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 161 to 136. [2022-04-28 04:51:44,419 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-28 04:51:44,419 INFO L82 GeneralOperation]: Start isEquivalent. First operand 161 states. Second operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-28 04:51:44,419 INFO L74 IsIncluded]: Start isIncluded. First operand 161 states. Second operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-28 04:51:44,419 INFO L87 Difference]: Start difference. First operand 161 states. Second operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-28 04:51:44,422 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:44,422 INFO L93 Difference]: Finished difference Result 161 states and 173 transitions. [2022-04-28 04:51:44,422 INFO L276 IsEmpty]: Start isEmpty. Operand 161 states and 173 transitions. [2022-04-28 04:51:44,422 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:51:44,422 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:51:44,422 INFO L74 IsIncluded]: Start isIncluded. First operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 161 states. [2022-04-28 04:51:44,422 INFO L87 Difference]: Start difference. First operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) Second operand 161 states. [2022-04-28 04:51:44,424 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-28 04:51:44,425 INFO L93 Difference]: Finished difference Result 161 states and 173 transitions. [2022-04-28 04:51:44,425 INFO L276 IsEmpty]: Start isEmpty. Operand 161 states and 173 transitions. [2022-04-28 04:51:44,425 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-28 04:51:44,425 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-28 04:51:44,425 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-28 04:51:44,425 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-28 04:51:44,425 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 136 states, 101 states have (on average 1.0891089108910892) internal successors, (110), 104 states have internal predecessors, (110), 19 states have call successors, (19), 16 states have call predecessors, (19), 15 states have return successors, (18), 15 states have call predecessors, (18), 18 states have call successors, (18) [2022-04-28 04:51:44,427 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 136 states to 136 states and 147 transitions. [2022-04-28 04:51:44,428 INFO L78 Accepts]: Start accepts. Automaton has 136 states and 147 transitions. Word has length 59 [2022-04-28 04:51:44,428 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-28 04:51:44,428 INFO L495 AbstractCegarLoop]: Abstraction has 136 states and 147 transitions. [2022-04-28 04:51:44,428 INFO L496 AbstractCegarLoop]: INTERPOLANT 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) [2022-04-28 04:51:44,428 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 136 states and 147 transitions. [2022-04-28 04:51:46,578 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 147 edges. 147 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-28 04:51:46,579 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 147 transitions. [2022-04-28 04:51:46,579 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 60 [2022-04-28 04:51:46,579 INFO L187 NwaCegarLoop]: Found error trace [2022-04-28 04:51:46,579 INFO L195 NwaCegarLoop]: 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-28 04:51:46,595 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (25)] Forceful destruction successful, exit code 0 [2022-04-28 04:51:46,779 WARN L477 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 25 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable24 [2022-04-28 04:51:46,780 INFO L420 AbstractCegarLoop]: === Iteration 26 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-28 04:51:46,780 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-28 04:51:46,780 INFO L85 PathProgramCache]: Analyzing trace with hash 1971200155, now seen corresponding path program 19 times [2022-04-28 04:51:46,780 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-28 04:51:46,780 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1209892137] [2022-04-28 04:51:46,780 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-28 04:51:46,780 INFO L85 PathProgramCache]: Analyzing trace with hash 1971200155, now seen corresponding path program 20 times [2022-04-28 04:51:46,781 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-28 04:51:46,781 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1545159880] [2022-04-28 04:51:46,781 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-28 04:51:46,781 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-28 04:51:46,794 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-28 04:51:46,794 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2065810033] [2022-04-28 04:51:46,794 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-28 04:51:46,794 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-28 04:51:46,794 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-28 04:51:46,795 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-28 04:51:46,796 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (26)] Waiting until timeout for monitored process [2022-04-28 04:51:46,842 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-28 04:51:46,842 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-28 04:51:46,843 INFO L263 TraceCheckSpWp]: Trace formula consists of 162 conjuncts, 55 conjunts are in the unsatisfiable core [2022-04-28 04:51:46,857 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-28 04:51:46,858 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-28 04:51:57,989 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:51:58,801 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-28 04:52:10,097 WARN L828 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful