/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/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf -i ../../../trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-34549b5 [2022-04-07 12:52:39,438 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-07 12:52:39,439 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-07 12:52:39,464 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-07 12:52:39,464 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-07 12:52:39,465 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-07 12:52:39,466 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-07 12:52:39,467 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-07 12:52:39,469 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-07 12:52:39,469 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-07 12:52:39,470 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-07 12:52:39,471 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-07 12:52:39,471 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-07 12:52:39,472 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-07 12:52:39,473 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-07 12:52:39,473 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-07 12:52:39,474 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-07 12:52:39,475 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-07 12:52:39,476 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-07 12:52:39,478 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-07 12:52:39,479 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-07 12:52:39,482 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-07 12:52:39,483 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-07 12:52:39,484 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-07 12:52:39,484 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-07 12:52:39,487 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-07 12:52:39,487 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-07 12:52:39,487 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-07 12:52:39,488 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-07 12:52:39,488 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-07 12:52:39,489 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-07 12:52:39,489 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-07 12:52:39,490 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-07 12:52:39,491 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-07 12:52:39,498 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-07 12:52:39,500 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-07 12:52:39,500 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-07 12:52:39,501 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-07 12:52:39,501 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-07 12:52:39,501 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-07 12:52:39,502 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-07 12:52:39,504 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-07 12:52:39,505 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2022-04-07 12:52:39,535 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-07 12:52:39,535 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-07 12:52:39,535 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-04-07 12:52:39,535 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-04-07 12:52:39,536 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-04-07 12:52:39,536 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-04-07 12:52:39,536 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-04-07 12:52:39,537 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-04-07 12:52:39,537 INFO L138 SettingsManager]: * Use SBE=true [2022-04-07 12:52:39,538 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-07 12:52:39,538 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-07 12:52:39,539 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-07 12:52:39,539 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-07 12:52:39,539 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-07 12:52:39,539 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-07 12:52:39,540 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-07 12:52:39,540 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-07 12:52:39,540 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-07 12:52:39,540 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-07 12:52:39,540 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-07 12:52:39,541 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode 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-07 12:52:39,734 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-07 12:52:39,755 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-07 12:52:39,757 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-07 12:52:39,758 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-07 12:52:39,759 INFO L275 PluginConnector]: CDTParser initialized [2022-04-07 12:52:39,760 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-07 12:52:39,814 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/b78673877/6ff66e16ed834d46a4ac94ac1441ab72/FLAGfe94768c6 [2022-04-07 12:52:40,179 INFO L306 CDTParser]: Found 1 translation units. [2022-04-07 12:52:40,179 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound20.c [2022-04-07 12:52:40,183 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/b78673877/6ff66e16ed834d46a4ac94ac1441ab72/FLAGfe94768c6 [2022-04-07 12:52:40,598 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/b78673877/6ff66e16ed834d46a4ac94ac1441ab72 [2022-04-07 12:52:40,601 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-07 12:52:40,602 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-07 12:52:40,604 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-07 12:52:40,604 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-07 12:52:40,606 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-07 12:52:40,607 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,608 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@20d31004 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40, skipping insertion in model container [2022-04-07 12:52:40,608 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,613 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-07 12:52:40,626 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-07 12:52:40,772 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-07 12:52:40,791 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-07 12:52:40,802 INFO L203 MainTranslator]: Completed pre-run [2022-04-07 12:52:40,812 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-07 12:52:40,823 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-07 12:52:40,833 INFO L208 MainTranslator]: Completed translation [2022-04-07 12:52:40,834 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40 WrapperNode [2022-04-07 12:52:40,834 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-07 12:52:40,835 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-07 12:52:40,835 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-07 12:52:40,835 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-07 12:52:40,842 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,842 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,847 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,848 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,853 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,856 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,857 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,859 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-07 12:52:40,860 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-07 12:52:40,860 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-07 12:52:40,860 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-07 12:52:40,861 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (1/1) ... [2022-04-07 12:52:40,867 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-07 12:52:40,877 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:52:40,893 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-07 12:52:40,916 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-07 12:52:40,942 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-07 12:52:40,943 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-07 12:52:40,943 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-07 12:52:40,943 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-07 12:52:40,943 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-07 12:52:40,943 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-07 12:52:40,943 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-07 12:52:40,943 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-07 12:52:40,943 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-07 12:52:40,944 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-07 12:52:40,945 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-07 12:52:40,945 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-07 12:52:40,945 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-07 12:52:40,991 INFO L234 CfgBuilder]: Building ICFG [2022-04-07 12:52:40,992 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-07 12:52:41,184 INFO L275 CfgBuilder]: Performing block encoding [2022-04-07 12:52:41,189 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-07 12:52:41,190 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-07 12:52:41,191 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.04 12:52:41 BoogieIcfgContainer [2022-04-07 12:52:41,191 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-07 12:52:41,192 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-07 12:52:41,192 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-07 12:52:41,195 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-07 12:52:41,196 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 07.04 12:52:40" (1/3) ... [2022-04-07 12:52:41,196 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2d7b3a86 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.04 12:52:41, skipping insertion in model container [2022-04-07 12:52:41,196 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:52:40" (2/3) ... [2022-04-07 12:52:41,197 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2d7b3a86 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.04 12:52:41, skipping insertion in model container [2022-04-07 12:52:41,197 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.04 12:52:41" (3/3) ... [2022-04-07 12:52:41,198 INFO L111 eAbstractionObserver]: Analyzing ICFG bresenham-ll_valuebound20.c [2022-04-07 12:52:41,202 INFO L203 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-04-07 12:52:41,202 INFO L162 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-07 12:52:41,275 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-07 12:52:41,281 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP [2022-04-07 12:52:41,281 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-07 12:52:41,318 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-07 12:52:41,325 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-07 12:52:41,325 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:52:41,326 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:52:41,327 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:52:41,335 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:52:41,336 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 1 times [2022-04-07 12:52:41,345 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:52:41,346 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2125389317] [2022-04-07 12:52:41,347 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:41,347 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:52:41,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:41,532 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-07 12:52:41,546 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:41,564 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-07 12:52:41,565 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-07 12:52:41,565 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-07 12:52:41,565 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-07 12:52:41,570 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:41,583 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:52:41,584 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:52:41,584 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:52:41,585 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-07 12:52:41,585 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-07 12:52:41,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:41,611 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:52:41,611 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:52:41,612 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:52:41,612 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-07 12:52:41,613 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-07 12:52:41,613 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-07 12:52:41,613 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-07 12:52:41,614 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-07 12:52:41,614 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret8 := main(); {35#true} is VALID [2022-04-07 12:52:41,614 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-07 12:52:41,614 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-07 12:52:41,615 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:52:41,615 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:52:41,615 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:52:41,615 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-07 12:52:41,616 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-07 12:52:41,616 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-07 12:52:41,616 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:52:41,617 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:52:41,617 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:52:41,617 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-07 12:52:41,617 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-07 12:52:41,618 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-07 12:52:41,618 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-07 12:52:41,618 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-07 12:52:41,618 INFO L290 TraceCheckUtils]: 21: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-07 12:52:41,618 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-07 12:52:41,619 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-07 12:52:41,619 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:52:41,619 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2125389317] [2022-04-07 12:52:41,620 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2125389317] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-07 12:52:41,620 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-07 12:52:41,620 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-07 12:52:41,622 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1677096469] [2022-04-07 12:52:41,622 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-07 12:52:41,626 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-07 12:52:41,628 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:52:41,631 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-07 12:52:41,677 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-07 12:52:41,678 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-07 12:52:41,678 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:52:41,699 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-07 12:52:41,700 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-07 12:52:41,703 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-07 12:52:41,833 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:41,834 INFO L93 Difference]: Finished difference Result 57 states and 74 transitions. [2022-04-07 12:52:41,834 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-07 12:52:41,834 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-07 12:52:41,835 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:52:41,856 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-07 12:52:41,865 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-07 12:52:41,865 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-07 12:52:41,872 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-07 12:52:41,873 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2022-04-07 12:52:41,947 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-07 12:52:41,954 INFO L225 Difference]: With dead ends: 57 [2022-04-07 12:52:41,955 INFO L226 Difference]: Without dead ends: 27 [2022-04-07 12:52:41,957 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-07 12:52:41,960 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 20 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 6 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 24 SdHoareTripleChecker+Valid, 34 SdHoareTripleChecker+Invalid, 11 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 6 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-07 12:52:41,960 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [24 Valid, 34 Invalid, 11 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 6 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-07 12:52:41,973 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-07 12:52:41,984 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-07 12:52:41,984 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:52:41,985 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-07 12:52:41,986 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-07 12:52:41,986 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-07 12:52:41,992 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:41,992 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-07 12:52:41,992 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:52:41,993 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:41,993 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:41,993 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-07 12:52:41,994 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-07 12:52:41,999 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:41,999 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-07 12:52:41,999 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:52:42,000 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:42,000 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:42,000 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:52:42,000 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:52:42,001 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-07 12:52:42,021 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 30 transitions. [2022-04-07 12:52:42,024 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 30 transitions. Word has length 23 [2022-04-07 12:52:42,024 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:52:42,024 INFO L478 AbstractCegarLoop]: Abstraction has 27 states and 30 transitions. [2022-04-07 12:52:42,025 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:52:42,025 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:52:42,026 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-07 12:52:42,026 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:52:42,026 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:52:42,026 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-07 12:52:42,027 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:52:42,027 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:52:42,027 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 1 times [2022-04-07 12:52:42,028 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:52:42,028 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [464757854] [2022-04-07 12:52:42,028 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:42,028 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:52:42,066 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:52:42,067 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1926913934] [2022-04-07 12:52:42,067 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:42,067 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:42,067 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:52:42,071 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-07 12:52:42,074 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-07 12:52:42,146 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:42,149 INFO L263 TraceCheckSpWp]: Trace formula consists of 84 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-07 12:52:42,165 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:42,168 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:52:42,414 INFO L272 TraceCheckUtils]: 0: Hoare triple {217#true} call ULTIMATE.init(); {217#true} is VALID [2022-04-07 12:52:42,414 INFO L290 TraceCheckUtils]: 1: Hoare triple {217#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); {217#true} is VALID [2022-04-07 12:52:42,415 INFO L290 TraceCheckUtils]: 2: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:52:42,415 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {217#true} {217#true} #69#return; {217#true} is VALID [2022-04-07 12:52:42,415 INFO L272 TraceCheckUtils]: 4: Hoare triple {217#true} call #t~ret8 := main(); {217#true} is VALID [2022-04-07 12:52:42,415 INFO L290 TraceCheckUtils]: 5: Hoare triple {217#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; {217#true} is VALID [2022-04-07 12:52:42,416 INFO L272 TraceCheckUtils]: 6: Hoare triple {217#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {217#true} is VALID [2022-04-07 12:52:42,416 INFO L290 TraceCheckUtils]: 7: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-07 12:52:42,416 INFO L290 TraceCheckUtils]: 8: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-07 12:52:42,416 INFO L290 TraceCheckUtils]: 9: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:52:42,416 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {217#true} {217#true} #61#return; {217#true} is VALID [2022-04-07 12:52:42,417 INFO L290 TraceCheckUtils]: 11: Hoare triple {217#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {217#true} is VALID [2022-04-07 12:52:42,417 INFO L272 TraceCheckUtils]: 12: Hoare triple {217#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {217#true} is VALID [2022-04-07 12:52:42,417 INFO L290 TraceCheckUtils]: 13: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-07 12:52:42,417 INFO L290 TraceCheckUtils]: 14: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-07 12:52:42,417 INFO L290 TraceCheckUtils]: 15: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:52:42,418 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {217#true} {217#true} #63#return; {217#true} is VALID [2022-04-07 12:52:42,418 INFO L290 TraceCheckUtils]: 17: Hoare triple {217#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {273#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:42,419 INFO L290 TraceCheckUtils]: 18: Hoare triple {273#(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; {277#(and (= main_~xy~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~yx~0 0))} is VALID [2022-04-07 12:52:42,420 INFO L272 TraceCheckUtils]: 19: Hoare triple {277#(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)); {281#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:52:42,421 INFO L290 TraceCheckUtils]: 20: Hoare triple {281#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {285#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:42,421 INFO L290 TraceCheckUtils]: 21: Hoare triple {285#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {218#false} is VALID [2022-04-07 12:52:42,422 INFO L290 TraceCheckUtils]: 22: Hoare triple {218#false} assume !false; {218#false} is VALID [2022-04-07 12:52:42,422 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-07 12:52:42,422 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-07 12:52:42,422 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:52:42,423 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [464757854] [2022-04-07 12:52:42,423 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:52:42,423 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1926913934] [2022-04-07 12:52:42,423 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1926913934] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-07 12:52:42,423 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-07 12:52:42,424 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-07 12:52:42,424 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [113114107] [2022-04-07 12:52:42,424 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-07 12:52:42,425 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-07 12:52:42,426 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:52:42,426 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-07 12:52:42,447 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-07 12:52:42,447 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-07 12:52:42,447 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:52:42,448 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-07 12:52:42,448 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-07 12:52:42,448 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-07 12:52:42,707 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:42,707 INFO L93 Difference]: Finished difference Result 39 states and 44 transitions. [2022-04-07 12:52:42,707 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-07 12:52:42,708 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-07 12:52:42,708 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:52:42,709 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-07 12:52:42,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-07 12:52:42,717 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-07 12:52:42,720 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-07 12:52:42,720 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2022-04-07 12:52:42,760 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-07 12:52:42,763 INFO L225 Difference]: With dead ends: 39 [2022-04-07 12:52:42,763 INFO L226 Difference]: Without dead ends: 35 [2022-04-07 12:52:42,763 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-07 12:52:42,765 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 10 mSDsluCounter, 69 mSDsCounter, 0 mSdLazyCounter, 61 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s 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-07 12:52:42,765 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [10 Valid, 91 Invalid, 66 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 61 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-07 12:52:42,766 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-04-07 12:52:42,772 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 34. [2022-04-07 12:52:42,772 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:52:42,773 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-07 12:52:42,773 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-07 12:52:42,774 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-07 12:52:42,776 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:42,776 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-07 12:52:42,776 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-07 12:52:42,777 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:42,777 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:42,777 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-07 12:52:42,778 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-07 12:52:42,780 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:42,780 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-07 12:52:42,780 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-07 12:52:42,781 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:42,781 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:42,781 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:52:42,781 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:52:42,781 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-07 12:52:42,783 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 37 transitions. [2022-04-07 12:52:42,783 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 37 transitions. Word has length 23 [2022-04-07 12:52:42,784 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:52:42,784 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 37 transitions. [2022-04-07 12:52:42,784 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:52:42,784 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 37 transitions. [2022-04-07 12:52:42,785 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-07 12:52:42,785 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:52:42,785 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:52:42,810 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-07 12:52:43,003 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:43,004 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:52:43,004 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:52:43,005 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 1 times [2022-04-07 12:52:43,005 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:52:43,005 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2007896278] [2022-04-07 12:52:43,005 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:43,006 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:52:43,042 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:52:43,042 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [362399364] [2022-04-07 12:52:43,043 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:43,043 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:43,043 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:52:43,044 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-07 12:52:43,046 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-07 12:52:43,101 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:43,102 INFO L263 TraceCheckSpWp]: Trace formula consists of 103 conjuncts, 17 conjunts are in the unsatisfiable core [2022-04-07 12:52:43,119 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:43,121 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:52:43,365 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-07 12:52:43,365 INFO L290 TraceCheckUtils]: 1: Hoare triple {467#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); {467#true} is VALID [2022-04-07 12:52:43,365 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,365 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-07 12:52:43,366 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-07 12:52:43,366 INFO L290 TraceCheckUtils]: 5: Hoare triple {467#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; {467#true} is VALID [2022-04-07 12:52:43,366 INFO L272 TraceCheckUtils]: 6: Hoare triple {467#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {467#true} is VALID [2022-04-07 12:52:43,366 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,366 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,367 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,367 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-07 12:52:43,367 INFO L290 TraceCheckUtils]: 11: Hoare triple {467#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {467#true} is VALID [2022-04-07 12:52:43,367 INFO L272 TraceCheckUtils]: 12: Hoare triple {467#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {467#true} is VALID [2022-04-07 12:52:43,367 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,367 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,368 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,368 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-07 12:52:43,369 INFO L290 TraceCheckUtils]: 17: Hoare triple {467#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:43,369 INFO L290 TraceCheckUtils]: 18: Hoare triple {523#(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; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:43,370 INFO L272 TraceCheckUtils]: 19: Hoare triple {523#(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)); {467#true} is VALID [2022-04-07 12:52:43,370 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,370 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,370 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,371 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {467#true} {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:43,372 INFO L290 TraceCheckUtils]: 24: Hoare triple {523#(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); {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:43,373 INFO L290 TraceCheckUtils]: 25: Hoare triple {523#(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; {548#(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-07 12:52:43,373 INFO L290 TraceCheckUtils]: 26: Hoare triple {548#(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; {552#(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-07 12:52:43,374 INFO L290 TraceCheckUtils]: 27: Hoare triple {552#(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; {556#(and (= main_~xy~0 0) (= 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-07 12:52:43,375 INFO L272 TraceCheckUtils]: 28: Hoare triple {556#(and (= main_~xy~0 0) (= 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)); {560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:52:43,376 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:43,376 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-07 12:52:43,377 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-07 12:52:43,377 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-07 12:52:43,377 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:52:43,574 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-07 12:52:43,575 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-07 12:52:43,576 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:43,577 INFO L272 TraceCheckUtils]: 28: Hoare triple {580#(= (+ (* 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)); {560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:52:43,577 INFO L290 TraceCheckUtils]: 27: Hoare triple {584#(= (+ (* 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; {580#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-07 12:52:43,582 INFO L290 TraceCheckUtils]: 26: Hoare triple {588#(= (+ (* (* 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; {584#(= (+ (* 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-07 12:52:43,583 INFO L290 TraceCheckUtils]: 25: Hoare triple {584#(= (+ (* 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; {588#(= (+ (* (* 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-07 12:52:43,583 INFO L290 TraceCheckUtils]: 24: Hoare triple {584#(= (+ (* 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); {584#(= (+ (* 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-07 12:52:43,584 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {467#true} {584#(= (+ (* 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; {584#(= (+ (* 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-07 12:52:43,584 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,585 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,585 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,585 INFO L272 TraceCheckUtils]: 19: Hoare triple {584#(= (+ (* 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)); {467#true} is VALID [2022-04-07 12:52:43,586 INFO L290 TraceCheckUtils]: 18: Hoare triple {584#(= (+ (* 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; {584#(= (+ (* 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-07 12:52:43,586 INFO L290 TraceCheckUtils]: 17: Hoare triple {467#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {584#(= (+ (* 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-07 12:52:43,586 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-07 12:52:43,587 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,587 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,587 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,587 INFO L272 TraceCheckUtils]: 12: Hoare triple {467#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {467#true} is VALID [2022-04-07 12:52:43,587 INFO L290 TraceCheckUtils]: 11: Hoare triple {467#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {467#true} is VALID [2022-04-07 12:52:43,587 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-07 12:52:43,587 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,588 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:52:43,588 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:52:43,588 INFO L272 TraceCheckUtils]: 6: Hoare triple {467#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {467#true} is VALID [2022-04-07 12:52:43,588 INFO L290 TraceCheckUtils]: 5: Hoare triple {467#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; {467#true} is VALID [2022-04-07 12:52:43,588 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-07 12:52:43,588 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-07 12:52:43,589 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:52:43,589 INFO L290 TraceCheckUtils]: 1: Hoare triple {467#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); {467#true} is VALID [2022-04-07 12:52:43,589 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-07 12:52:43,589 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-07 12:52:43,589 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:52:43,590 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2007896278] [2022-04-07 12:52:43,590 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:52:43,590 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [362399364] [2022-04-07 12:52:43,590 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [362399364] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:52:43,590 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:52:43,590 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7] total 11 [2022-04-07 12:52:43,590 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [668308675] [2022-04-07 12:52:43,591 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:52:43,591 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 32 [2022-04-07 12:52:43,592 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:52:43,592 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:52:43,646 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-07 12:52:43,646 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-07 12:52:43,646 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:52:43,647 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-07 12:52:43,647 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=23, Invalid=87, Unknown=0, NotChecked=0, Total=110 [2022-04-07 12:52:43,647 INFO L87 Difference]: Start difference. First operand 34 states and 37 transitions. Second operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:52:44,247 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:44,247 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2022-04-07 12:52:44,247 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-07 12:52:44,247 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 32 [2022-04-07 12:52:44,248 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:52:44,248 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:52:44,251 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-07 12:52:44,251 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:52:44,253 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-07 12:52:44,253 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 51 transitions. [2022-04-07 12:52:44,307 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-07 12:52:44,309 INFO L225 Difference]: With dead ends: 48 [2022-04-07 12:52:44,309 INFO L226 Difference]: Without dead ends: 42 [2022-04-07 12:52:44,310 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 67 GetRequests, 52 SyntacticMatches, 2 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=44, Invalid=166, Unknown=0, NotChecked=0, Total=210 [2022-04-07 12:52:44,311 INFO L913 BasicCegarLoop]: 21 mSDtfsCounter, 14 mSDsluCounter, 114 mSDsCounter, 0 mSdLazyCounter, 166 mSolverCounterSat, 11 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 14 SdHoareTripleChecker+Valid, 135 SdHoareTripleChecker+Invalid, 177 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 11 IncrementalHoareTripleChecker+Valid, 166 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-07 12:52:44,311 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [14 Valid, 135 Invalid, 177 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [11 Valid, 166 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-07 12:52:44,312 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2022-04-07 12:52:44,320 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 41. [2022-04-07 12:52:44,320 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:52:44,320 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:44,321 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:44,321 INFO L87 Difference]: Start difference. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:44,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:44,323 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-07 12:52:44,323 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-07 12:52:44,324 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:44,324 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:44,324 INFO L74 IsIncluded]: Start isIncluded. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 42 states. [2022-04-07 12:52:44,324 INFO L87 Difference]: Start difference. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 42 states. [2022-04-07 12:52:44,326 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:44,327 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-07 12:52:44,327 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-07 12:52:44,327 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:44,327 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:44,327 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:52:44,327 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:52:44,328 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:44,329 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-07 12:52:44,329 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 32 [2022-04-07 12:52:44,330 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:52:44,330 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-07 12:52:44,330 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:52:44,330 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-07 12:52:44,331 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-07 12:52:44,331 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:52:44,331 INFO L499 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:52:44,354 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-07 12:52:44,532 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-07 12:52:44,532 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:52:44,533 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:52:44,533 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 1 times [2022-04-07 12:52:44,533 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:52:44,533 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1854921496] [2022-04-07 12:52:44,533 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:44,533 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:52:44,551 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:52:44,552 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [57430122] [2022-04-07 12:52:44,552 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:44,552 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:44,552 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:52:44,553 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-07 12:52:44,568 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-07 12:52:44,613 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:44,614 INFO L263 TraceCheckSpWp]: Trace formula consists of 119 conjuncts, 26 conjunts are in the unsatisfiable core [2022-04-07 12:52:44,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:44,627 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:52:45,102 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-07 12:52:45,102 INFO L290 TraceCheckUtils]: 1: Hoare triple {885#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); {885#true} is VALID [2022-04-07 12:52:45,102 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,102 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-07 12:52:45,102 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-07 12:52:45,103 INFO L290 TraceCheckUtils]: 5: Hoare triple {885#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; {885#true} is VALID [2022-04-07 12:52:45,103 INFO L272 TraceCheckUtils]: 6: Hoare triple {885#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {885#true} is VALID [2022-04-07 12:52:45,103 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,103 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,103 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,103 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-07 12:52:45,103 INFO L290 TraceCheckUtils]: 11: Hoare triple {885#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {885#true} is VALID [2022-04-07 12:52:45,104 INFO L272 TraceCheckUtils]: 12: Hoare triple {885#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {885#true} is VALID [2022-04-07 12:52:45,104 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,104 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,104 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,104 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-07 12:52:45,111 INFO L290 TraceCheckUtils]: 17: Hoare triple {885#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:45,111 INFO L290 TraceCheckUtils]: 18: Hoare triple {941#(and (= main_~x~0 0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:45,111 INFO L272 TraceCheckUtils]: 19: Hoare triple {941#(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)); {885#true} is VALID [2022-04-07 12:52:45,111 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,112 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,112 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,112 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {885#true} {941#(and (= main_~x~0 0) (= main_~y~0 0))} #65#return; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:45,113 INFO L290 TraceCheckUtils]: 24: Hoare triple {941#(and (= main_~x~0 0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {963#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:52:45,113 INFO L290 TraceCheckUtils]: 25: Hoare triple {963#(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; {967#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1))} is VALID [2022-04-07 12:52:45,114 INFO L290 TraceCheckUtils]: 26: Hoare triple {967#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {971#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:52:45,115 INFO L290 TraceCheckUtils]: 27: Hoare triple {971#(and (= (+ (- 1) main_~x~0) 0) (= 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; {975#(and (= (+ (- 1) main_~x~0) 0) (= 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-07 12:52:45,115 INFO L272 TraceCheckUtils]: 28: Hoare triple {975#(and (= (+ (- 1) main_~x~0) 0) (= 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)); {885#true} is VALID [2022-04-07 12:52:45,115 INFO L290 TraceCheckUtils]: 29: Hoare triple {885#true} ~cond := #in~cond; {982#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:45,116 INFO L290 TraceCheckUtils]: 30: Hoare triple {982#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:52:45,116 INFO L290 TraceCheckUtils]: 31: Hoare triple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:52:45,117 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} {975#(and (= (+ (- 1) main_~x~0) 0) (= 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; {993#(and (= (+ (- 1) main_~x~0) 0) (= 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-07 12:52:45,118 INFO L290 TraceCheckUtils]: 33: Hoare triple {993#(and (= (+ (- 1) main_~x~0) 0) (= 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); {997#(and (= (+ (- 1) main_~x~0) 0) (= 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-07 12:52:45,120 INFO L290 TraceCheckUtils]: 34: Hoare triple {997#(and (= (+ (- 1) main_~x~0) 0) (= 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; {1001#(and (not (<= 1 main_~X~0)) (= main_~y~0 main_~xy~0) (= main_~y~0 1) (<= 0 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 4)) (= main_~Y~0 main_~yx~0))} is VALID [2022-04-07 12:52:45,121 INFO L272 TraceCheckUtils]: 35: Hoare triple {1001#(and (not (<= 1 main_~X~0)) (= main_~y~0 main_~xy~0) (= main_~y~0 1) (<= 0 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 4)) (= main_~Y~0 main_~yx~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)); {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:52:45,121 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:45,122 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-07 12:52:45,122 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-07 12:52:45,122 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-07 12:52:45,122 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:52:45,927 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-07 12:52:45,928 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-07 12:52:45,928 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:52:45,929 INFO L272 TraceCheckUtils]: 35: Hoare triple {1025#(= (+ (* 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)); {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:52:45,930 INFO L290 TraceCheckUtils]: 34: Hoare triple {1029#(= (+ (* 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; {1025#(= (+ (* 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-07 12:52:45,931 INFO L290 TraceCheckUtils]: 33: Hoare triple {1033#(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); {1029#(= (+ (* 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-07 12:52:45,932 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} {1037#(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; {1033#(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-07 12:52:45,932 INFO L290 TraceCheckUtils]: 31: Hoare triple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:52:45,933 INFO L290 TraceCheckUtils]: 30: Hoare triple {1047#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:52:45,933 INFO L290 TraceCheckUtils]: 29: Hoare triple {885#true} ~cond := #in~cond; {1047#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:52:45,933 INFO L272 TraceCheckUtils]: 28: Hoare triple {1037#(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)); {885#true} is VALID [2022-04-07 12:52:45,934 INFO L290 TraceCheckUtils]: 27: Hoare triple {1054#(or (<= main_~x~0 main_~X~0) (forall ((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; {1037#(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-07 12:52:45,936 INFO L290 TraceCheckUtils]: 26: Hoare triple {1058#(or (<= (+ main_~x~0 1) main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* (* (+ 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; {1054#(or (<= main_~x~0 main_~X~0) (forall ((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-07 12:52:45,938 INFO L290 TraceCheckUtils]: 25: Hoare triple {1062#(or (forall ((main_~Y~0 Int)) (= (+ (* 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; {1058#(or (<= (+ main_~x~0 1) main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* (* (+ 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-07 12:52:45,940 INFO L290 TraceCheckUtils]: 24: Hoare triple {885#true} assume !!(~x~0 <= ~X~0); {1062#(or (forall ((main_~Y~0 Int)) (= (+ (* 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-07 12:52:45,940 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {885#true} {885#true} #65#return; {885#true} is VALID [2022-04-07 12:52:45,940 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,940 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,940 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L272 TraceCheckUtils]: 19: Hoare triple {885#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {885#true} is VALID [2022-04-07 12:52:45,941 INFO L290 TraceCheckUtils]: 18: Hoare triple {885#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L290 TraceCheckUtils]: 17: Hoare triple {885#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,941 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,941 INFO L272 TraceCheckUtils]: 12: Hoare triple {885#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {885#true} is VALID [2022-04-07 12:52:45,942 INFO L290 TraceCheckUtils]: 11: Hoare triple {885#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {885#true} is VALID [2022-04-07 12:52:45,942 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-07 12:52:45,942 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,942 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:52:45,942 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:52:45,942 INFO L272 TraceCheckUtils]: 6: Hoare triple {885#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {885#true} is VALID [2022-04-07 12:52:45,942 INFO L290 TraceCheckUtils]: 5: Hoare triple {885#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; {885#true} is VALID [2022-04-07 12:52:45,943 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-07 12:52:45,943 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-07 12:52:45,943 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:52:45,943 INFO L290 TraceCheckUtils]: 1: Hoare triple {885#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); {885#true} is VALID [2022-04-07 12:52:45,943 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-07 12:52:45,943 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-07 12:52:45,944 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:52:45,944 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1854921496] [2022-04-07 12:52:45,944 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:52:45,944 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [57430122] [2022-04-07 12:52:45,944 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [57430122] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:52:45,944 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:52:45,944 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 22 [2022-04-07 12:52:45,944 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1275082086] [2022-04-07 12:52:45,945 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:52:45,945 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 39 [2022-04-07 12:52:45,946 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:52:45,946 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:52:46,000 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-07 12:52:46,000 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-04-07 12:52:46,000 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:52:46,001 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-04-07 12:52:46,002 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=389, Unknown=0, NotChecked=0, Total=462 [2022-04-07 12:52:46,002 INFO L87 Difference]: Start difference. First operand 41 states and 45 transitions. Second operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:52:47,314 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:47,314 INFO L93 Difference]: Finished difference Result 60 states and 68 transitions. [2022-04-07 12:52:47,314 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-07 12:52:47,314 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 39 [2022-04-07 12:52:47,315 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:52:47,315 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:52:47,318 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-07 12:52:47,318 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:52:47,320 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-07 12:52:47,320 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 62 transitions. [2022-04-07 12:52:47,393 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:52:47,394 INFO L225 Difference]: With dead ends: 60 [2022-04-07 12:52:47,394 INFO L226 Difference]: Without dead ends: 52 [2022-04-07 12:52:47,395 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 57 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 261 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=220, Invalid=1112, Unknown=0, NotChecked=0, Total=1332 [2022-04-07 12:52:47,396 INFO L913 BasicCegarLoop]: 20 mSDtfsCounter, 28 mSDsluCounter, 202 mSDsCounter, 0 mSdLazyCounter, 254 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 222 SdHoareTripleChecker+Invalid, 377 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 25 IncrementalHoareTripleChecker+Valid, 254 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 98 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-07 12:52:47,396 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 222 Invalid, 377 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [25 Valid, 254 Invalid, 0 Unknown, 98 Unchecked, 0.3s Time] [2022-04-07 12:52:47,397 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-07 12:52:47,410 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 41. [2022-04-07 12:52:47,410 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:52:47,410 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:47,411 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:47,411 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:47,413 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:47,413 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-07 12:52:47,413 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-07 12:52:47,414 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:47,414 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:47,414 INFO L74 IsIncluded]: Start isIncluded. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 52 states. [2022-04-07 12:52:47,414 INFO L87 Difference]: Start difference. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 52 states. [2022-04-07 12:52:47,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:52:47,417 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-07 12:52:47,417 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-07 12:52:47,417 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:52:47,417 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:52:47,417 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:52:47,417 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:52:47,418 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:52:47,419 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-07 12:52:47,419 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 39 [2022-04-07 12:52:47,420 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:52:47,420 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-07 12:52:47,420 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:52:47,420 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-07 12:52:47,421 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-07 12:52:47,421 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:52:47,421 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:52:47,444 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-07 12:52:47,643 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:47,643 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:52:47,644 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:52:47,644 INFO L85 PathProgramCache]: Analyzing trace with hash 1662296326, now seen corresponding path program 1 times [2022-04-07 12:52:47,644 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:52:47,644 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1796014047] [2022-04-07 12:52:47,644 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:47,644 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:52:47,661 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:52:47,661 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1710444295] [2022-04-07 12:52:47,661 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:52:47,661 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:52:47,661 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:52:47,664 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-07 12:52:47,688 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-07 12:52:47,723 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:47,724 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 23 conjunts are in the unsatisfiable core [2022-04-07 12:52:47,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:52:47,738 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:52:59,941 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:53:02,745 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:53:21,513 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-07 12:53:21,513 INFO L290 TraceCheckUtils]: 1: Hoare triple {1417#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); {1417#true} is VALID [2022-04-07 12:53:21,513 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:21,513 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-07 12:53:21,513 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 5: Hoare triple {1417#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; {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L272 TraceCheckUtils]: 6: Hoare triple {1417#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 11: Hoare triple {1417#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L272 TraceCheckUtils]: 12: Hoare triple {1417#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:53:21,514 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:21,515 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:21,515 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:21,515 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-07 12:53:21,515 INFO L290 TraceCheckUtils]: 17: Hoare triple {1417#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,516 INFO L290 TraceCheckUtils]: 18: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,516 INFO L272 TraceCheckUtils]: 19: Hoare triple {1473#(= 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)); {1417#true} is VALID [2022-04-07 12:53:21,516 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:21,516 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:21,516 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:21,517 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,517 INFO L290 TraceCheckUtils]: 24: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,518 INFO L290 TraceCheckUtils]: 25: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,518 INFO L290 TraceCheckUtils]: 26: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,518 INFO L290 TraceCheckUtils]: 27: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,518 INFO L272 TraceCheckUtils]: 28: Hoare triple {1473#(= 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)); {1417#true} is VALID [2022-04-07 12:53:21,519 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:21,519 INFO L290 TraceCheckUtils]: 30: Hoare triple {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:21,520 INFO L290 TraceCheckUtils]: 31: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:21,520 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,521 INFO L290 TraceCheckUtils]: 33: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,521 INFO L290 TraceCheckUtils]: 34: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,521 INFO L290 TraceCheckUtils]: 35: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:21,522 INFO L290 TraceCheckUtils]: 36: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1533#(and (= (* 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-07 12:53:21,522 INFO L272 TraceCheckUtils]: 37: Hoare triple {1533#(and (= (* 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)); {1417#true} is VALID [2022-04-07 12:53:21,522 INFO L290 TraceCheckUtils]: 38: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:21,523 INFO L290 TraceCheckUtils]: 39: Hoare triple {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:21,523 INFO L290 TraceCheckUtils]: 40: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:21,525 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1533#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {1549#(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))} is VALID [2022-04-07 12:53:21,525 INFO L290 TraceCheckUtils]: 42: Hoare triple {1549#(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))} assume !(~x~0 <= ~X~0); {1549#(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))} is VALID [2022-04-07 12:53:23,528 WARN L290 TraceCheckUtils]: 43: Hoare triple {1549#(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))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1556#(and (= main_~y~0 0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~xy~0 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~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) (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-07 12:53:23,531 INFO L272 TraceCheckUtils]: 44: Hoare triple {1556#(and (= main_~y~0 0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~xy~0 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~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) (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)); {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:23,531 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:23,531 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-07 12:53:23,531 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-07 12:53:23,532 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 14 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-07 12:53:23,532 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:53:29,442 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-07 12:53:29,442 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-07 12:53:29,443 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:29,444 INFO L272 TraceCheckUtils]: 44: Hoare triple {1580#(= (+ (* 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)); {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:29,445 INFO L290 TraceCheckUtils]: 43: Hoare triple {1584#(= (+ (* 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; {1580#(= (+ (* 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-07 12:53:29,446 INFO L290 TraceCheckUtils]: 42: Hoare triple {1584#(= (+ (* 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); {1584#(= (+ (* 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-07 12:53:29,447 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1591#(= (+ (* 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; {1584#(= (+ (* 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-07 12:53:29,447 INFO L290 TraceCheckUtils]: 40: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:29,448 INFO L290 TraceCheckUtils]: 39: Hoare triple {1601#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:29,448 INFO L290 TraceCheckUtils]: 38: Hoare triple {1417#true} ~cond := #in~cond; {1601#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:53:29,448 INFO L272 TraceCheckUtils]: 37: Hoare triple {1591#(= (+ (* 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)); {1417#true} is VALID [2022-04-07 12:53:29,449 INFO L290 TraceCheckUtils]: 36: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1591#(= (+ (* 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-07 12:53:29,449 INFO L290 TraceCheckUtils]: 35: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,450 INFO L290 TraceCheckUtils]: 34: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,450 INFO L290 TraceCheckUtils]: 33: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,451 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,451 INFO L290 TraceCheckUtils]: 31: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:29,451 INFO L290 TraceCheckUtils]: 30: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:29,451 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:29,451 INFO L272 TraceCheckUtils]: 28: Hoare triple {1473#(= 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)); {1417#true} is VALID [2022-04-07 12:53:29,452 INFO L290 TraceCheckUtils]: 27: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,452 INFO L290 TraceCheckUtils]: 26: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,453 INFO L290 TraceCheckUtils]: 25: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,453 INFO L290 TraceCheckUtils]: 24: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,454 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,454 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:29,454 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:29,454 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:29,454 INFO L272 TraceCheckUtils]: 19: Hoare triple {1473#(= 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)); {1417#true} is VALID [2022-04-07 12:53:29,455 INFO L290 TraceCheckUtils]: 18: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,455 INFO L290 TraceCheckUtils]: 17: Hoare triple {1417#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:53:29,455 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-07 12:53:29,455 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:29,455 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:29,455 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L272 TraceCheckUtils]: 12: Hoare triple {1417#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L290 TraceCheckUtils]: 11: Hoare triple {1417#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L272 TraceCheckUtils]: 6: Hoare triple {1417#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L290 TraceCheckUtils]: 5: Hoare triple {1417#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; {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-07 12:53:29,456 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-07 12:53:29,457 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:53:29,457 INFO L290 TraceCheckUtils]: 1: Hoare triple {1417#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); {1417#true} is VALID [2022-04-07 12:53:29,457 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-07 12:53:29,457 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 11 proven. 5 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-07 12:53:29,457 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:53:29,457 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1796014047] [2022-04-07 12:53:29,457 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:53:29,457 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1710444295] [2022-04-07 12:53:29,457 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1710444295] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:53:29,458 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:53:29,458 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 14 [2022-04-07 12:53:29,458 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1378639847] [2022-04-07 12:53:29,458 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:53:29,458 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 48 [2022-04-07 12:53:29,461 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:53:29,461 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:31,511 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:31,511 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-07 12:53:31,511 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:53:31,511 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-07 12:53:31,512 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=147, Unknown=0, NotChecked=0, Total=182 [2022-04-07 12:53:31,512 INFO L87 Difference]: Start difference. First operand 41 states and 45 transitions. Second operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:34,054 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-07 12:53:38,355 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-07 12:53:40,385 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-07 12:53:42,406 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-07 12:53:44,741 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-07 12:53:46,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-07 12:53:49,446 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:49,446 INFO L93 Difference]: Finished difference Result 56 states and 63 transitions. [2022-04-07 12:53:49,446 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:53:49,446 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 48 [2022-04-07 12:53:49,447 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:53:49,447 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:49,448 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-07 12:53:49,448 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:49,450 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-07 12:53:49,450 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 48 transitions. [2022-04-07 12:53:51,498 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 47 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:51,500 INFO L225 Difference]: With dead ends: 56 [2022-04-07 12:53:51,500 INFO L226 Difference]: Without dead ends: 50 [2022-04-07 12:53:51,500 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 81 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 50 ImplicationChecksByTransitivity, 4.8s TimeCoverageRelationStatistics Valid=66, Invalid=238, Unknown=2, NotChecked=0, Total=306 [2022-04-07 12:53:51,501 INFO L913 BasicCegarLoop]: 19 mSDtfsCounter, 25 mSDsluCounter, 114 mSDsCounter, 0 mSdLazyCounter, 143 mSolverCounterSat, 13 mSolverCounterUnsat, 6 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 12.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 26 SdHoareTripleChecker+Valid, 133 SdHoareTripleChecker+Invalid, 162 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 143 IncrementalHoareTripleChecker+Invalid, 6 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 12.6s IncrementalHoareTripleChecker+Time [2022-04-07 12:53:51,501 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [26 Valid, 133 Invalid, 162 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 143 Invalid, 6 Unknown, 0 Unchecked, 12.6s Time] [2022-04-07 12:53:51,502 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2022-04-07 12:53:51,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 44. [2022-04-07 12:53:51,514 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:53:51,514 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:53:51,514 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:53:51,514 INFO L87 Difference]: Start difference. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:53:51,516 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:51,516 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-07 12:53:51,516 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-07 12:53:51,517 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:51,517 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:51,517 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 50 states. [2022-04-07 12:53:51,517 INFO L87 Difference]: Start difference. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 50 states. [2022-04-07 12:53:51,519 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:51,519 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-07 12:53:51,519 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-07 12:53:51,519 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:51,520 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:51,520 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:53:51,520 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:53:51,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:53:51,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2022-04-07 12:53:51,522 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 48 [2022-04-07 12:53:51,522 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:53:51,522 INFO L478 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2022-04-07 12:53:51,522 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:51,522 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-07 12:53:51,523 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-07 12:53:51,523 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:51,523 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:51,548 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-07 12:53:51,746 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:51,746 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:51,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:51,746 INFO L85 PathProgramCache]: Analyzing trace with hash -143142008, now seen corresponding path program 1 times [2022-04-07 12:53:51,747 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:51,747 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1764365307] [2022-04-07 12:53:51,747 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:51,747 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:51,766 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:53:51,766 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [951761090] [2022-04-07 12:53:51,766 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:51,766 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:51,766 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:51,769 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-07 12:53:51,770 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-07 12:53:51,822 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:51,823 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-07 12:53:51,835 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:51,836 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:53:59,785 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-07 12:53:59,785 INFO L290 TraceCheckUtils]: 1: Hoare triple {1968#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); {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L290 TraceCheckUtils]: 5: Hoare triple {1968#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; {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L272 TraceCheckUtils]: 6: Hoare triple {1968#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,786 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L290 TraceCheckUtils]: 11: Hoare triple {1968#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L272 TraceCheckUtils]: 12: Hoare triple {1968#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,787 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-07 12:53:59,788 INFO L290 TraceCheckUtils]: 17: Hoare triple {1968#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:53:59,788 INFO L290 TraceCheckUtils]: 18: Hoare triple {2024#(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; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:53:59,788 INFO L272 TraceCheckUtils]: 19: Hoare triple {2024#(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)); {1968#true} is VALID [2022-04-07 12:53:59,789 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:53:59,789 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:53:59,789 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,790 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1968#true} {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} #65#return; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:53:59,790 INFO L290 TraceCheckUtils]: 24: Hoare triple {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !!(~x~0 <= ~X~0); {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:53:59,791 INFO L290 TraceCheckUtils]: 25: Hoare triple {2024#(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; {2049#(and (<= main_~x~0 0) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:53:59,792 INFO L290 TraceCheckUtils]: 26: Hoare triple {2049#(and (<= main_~x~0 0) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:53:59,793 INFO L290 TraceCheckUtils]: 27: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:53:59,793 INFO L272 TraceCheckUtils]: 28: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:53:59,793 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:53:59,793 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:53:59,793 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,794 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1968#true} {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} #65#return; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:53:59,794 INFO L290 TraceCheckUtils]: 33: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume !!(~x~0 <= ~X~0); {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:53:59,795 INFO L290 TraceCheckUtils]: 34: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2078#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 1))} is VALID [2022-04-07 12:53:59,796 INFO L290 TraceCheckUtils]: 35: Hoare triple {2078#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:53:59,797 INFO L290 TraceCheckUtils]: 36: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:53:59,797 INFO L272 TraceCheckUtils]: 37: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= 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)); {1968#true} is VALID [2022-04-07 12:53:59,797 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:53:59,797 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:53:59,797 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:53:59,798 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1968#true} {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} #65#return; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:53:59,799 INFO L290 TraceCheckUtils]: 42: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} assume !(~x~0 <= ~X~0); {1969#false} is VALID [2022-04-07 12:53:59,799 INFO L290 TraceCheckUtils]: 43: Hoare triple {1969#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1969#false} is VALID [2022-04-07 12:53:59,799 INFO L272 TraceCheckUtils]: 44: Hoare triple {1969#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)); {1969#false} is VALID [2022-04-07 12:53:59,799 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-07 12:53:59,799 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-07 12:53:59,799 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-07 12:53:59,800 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-07 12:53:59,800 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:54:00,401 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-07 12:54:00,402 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-07 12:54:00,402 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-07 12:54:00,402 INFO L272 TraceCheckUtils]: 44: Hoare triple {1969#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)); {1969#false} is VALID [2022-04-07 12:54:00,402 INFO L290 TraceCheckUtils]: 43: Hoare triple {1969#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1969#false} is VALID [2022-04-07 12:54:00,402 INFO L290 TraceCheckUtils]: 42: Hoare triple {2134#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {1969#false} is VALID [2022-04-07 12:54:00,403 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1968#true} {2134#(<= main_~x~0 main_~X~0)} #65#return; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:00,403 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,403 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:00,403 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:00,403 INFO L272 TraceCheckUtils]: 37: Hoare triple {2134#(<= 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)); {1968#true} is VALID [2022-04-07 12:54:00,403 INFO L290 TraceCheckUtils]: 36: Hoare triple {2134#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:00,404 INFO L290 TraceCheckUtils]: 35: Hoare triple {2156#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:00,405 INFO L290 TraceCheckUtils]: 34: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2156#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:00,405 INFO L290 TraceCheckUtils]: 33: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} assume !!(~x~0 <= ~X~0); {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:00,406 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1968#true} {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} #65#return; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:00,406 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,406 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:00,406 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:00,406 INFO L272 TraceCheckUtils]: 28: Hoare triple {2160#(or (not (< 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)); {1968#true} is VALID [2022-04-07 12:54:00,407 INFO L290 TraceCheckUtils]: 27: Hoare triple {2160#(or (not (< 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; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:00,407 INFO L290 TraceCheckUtils]: 26: Hoare triple {2185#(or (<= (+ main_~x~0 2) main_~X~0) (not (< main_~v~0 0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:00,408 INFO L290 TraceCheckUtils]: 25: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< 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; {2185#(or (<= (+ main_~x~0 2) main_~X~0) (not (< main_~v~0 0)))} is VALID [2022-04-07 12:54:00,410 INFO L290 TraceCheckUtils]: 24: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} assume !!(~x~0 <= ~X~0); {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:00,411 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1968#true} {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} #65#return; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:00,411 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,411 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:00,411 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:00,411 INFO L272 TraceCheckUtils]: 19: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< 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)); {1968#true} is VALID [2022-04-07 12:54:00,412 INFO L290 TraceCheckUtils]: 18: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:00,412 INFO L290 TraceCheckUtils]: 17: Hoare triple {1968#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:00,413 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L272 TraceCheckUtils]: 12: Hoare triple {1968#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 11: Hoare triple {1968#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:00,413 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L272 TraceCheckUtils]: 6: Hoare triple {1968#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L290 TraceCheckUtils]: 5: Hoare triple {1968#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; {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L290 TraceCheckUtils]: 1: Hoare triple {1968#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); {1968#true} is VALID [2022-04-07 12:54:00,414 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-07 12:54:00,414 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-07 12:54:00,414 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:54:00,414 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1764365307] [2022-04-07 12:54:00,414 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:54:00,414 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [951761090] [2022-04-07 12:54:00,414 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [951761090] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:54:00,414 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:54:00,414 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2022-04-07 12:54:00,415 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2029405667] [2022-04-07 12:54:00,415 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:54:00,415 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) Word has length 48 [2022-04-07 12:54:00,415 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:54:00,416 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:00,462 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:00,462 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-07 12:54:00,462 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:54:00,462 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-07 12:54:00,462 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2022-04-07 12:54:00,462 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:01,703 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:01,703 INFO L93 Difference]: Finished difference Result 65 states and 75 transitions. [2022-04-07 12:54:01,703 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:54:01,704 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) Word has length 48 [2022-04-07 12:54:01,704 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:54:01,704 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:01,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-07 12:54:01,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:01,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-07 12:54:01,709 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 58 transitions. [2022-04-07 12:54:01,766 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-07 12:54:01,767 INFO L225 Difference]: With dead ends: 65 [2022-04-07 12:54:01,767 INFO L226 Difference]: Without dead ends: 59 [2022-04-07 12:54:01,768 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 85 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=59, Invalid=181, Unknown=0, NotChecked=0, Total=240 [2022-04-07 12:54:01,768 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 5 mSDsluCounter, 68 mSDsCounter, 0 mSdLazyCounter, 116 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 5 SdHoareTripleChecker+Valid, 99 SdHoareTripleChecker+Invalid, 129 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 116 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-07 12:54:01,769 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [5 Valid, 99 Invalid, 129 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 116 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-07 12:54:01,769 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-04-07 12:54:01,790 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 51. [2022-04-07 12:54:01,790 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:54:01,791 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:01,791 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:01,791 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:01,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:01,793 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-07 12:54:01,793 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-07 12:54:01,794 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:01,794 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:01,794 INFO L74 IsIncluded]: Start isIncluded. First operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 59 states. [2022-04-07 12:54:01,794 INFO L87 Difference]: Start difference. First operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 59 states. [2022-04-07 12:54:01,796 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:01,797 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-07 12:54:01,797 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-07 12:54:01,797 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:01,797 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:01,797 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:54:01,797 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:54:01,797 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:01,799 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 59 transitions. [2022-04-07 12:54:01,799 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 59 transitions. Word has length 48 [2022-04-07 12:54:01,799 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:54:01,800 INFO L478 AbstractCegarLoop]: Abstraction has 51 states and 59 transitions. [2022-04-07 12:54:01,800 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:01,800 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 59 transitions. [2022-04-07 12:54:01,801 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-07 12:54:01,801 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:54:01,801 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:54:01,824 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-07 12:54:02,015 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:02,016 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:54:02,016 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:54:02,016 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 2 times [2022-04-07 12:54:02,016 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:54:02,016 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1093732608] [2022-04-07 12:54:02,016 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:02,016 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:54:02,030 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:54:02,030 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2023031570] [2022-04-07 12:54:02,030 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-07 12:54:02,030 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:02,030 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:54:02,031 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-07 12:54:02,033 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-07 12:54:02,080 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-07 12:54:02,080 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-07 12:54:02,081 INFO L263 TraceCheckSpWp]: Trace formula consists of 157 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-07 12:54:02,095 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:02,096 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:54:05,319 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L290 TraceCheckUtils]: 1: Hoare triple {2555#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); {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L290 TraceCheckUtils]: 5: Hoare triple {2555#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; {2555#true} is VALID [2022-04-07 12:54:05,319 INFO L272 TraceCheckUtils]: 6: Hoare triple {2555#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 11: Hoare triple {2555#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L272 TraceCheckUtils]: 12: Hoare triple {2555#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,320 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-07 12:54:05,329 INFO L290 TraceCheckUtils]: 17: Hoare triple {2555#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:05,329 INFO L290 TraceCheckUtils]: 18: Hoare triple {2611#(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; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:05,329 INFO L272 TraceCheckUtils]: 19: Hoare triple {2611#(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)); {2555#true} is VALID [2022-04-07 12:54:05,329 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,329 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,329 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,330 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2555#true} {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} #65#return; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:05,330 INFO L290 TraceCheckUtils]: 24: Hoare triple {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !!(~x~0 <= ~X~0); {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:05,332 INFO L290 TraceCheckUtils]: 25: Hoare triple {2611#(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; {2636#(and (<= main_~x~0 0) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:05,333 INFO L290 TraceCheckUtils]: 26: Hoare triple {2636#(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; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:05,333 INFO L290 TraceCheckUtils]: 27: Hoare triple {2640#(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; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:05,334 INFO L272 TraceCheckUtils]: 28: Hoare triple {2640#(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)); {2555#true} is VALID [2022-04-07 12:54:05,334 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,334 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,334 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,334 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2555#true} {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} #65#return; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:05,335 INFO L290 TraceCheckUtils]: 33: Hoare triple {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !!(~x~0 <= ~X~0); {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:05,336 INFO L290 TraceCheckUtils]: 34: Hoare triple {2640#(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; {2665#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,337 INFO L290 TraceCheckUtils]: 35: Hoare triple {2665#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,337 INFO L290 TraceCheckUtils]: 36: Hoare triple {2669#(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; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,337 INFO L272 TraceCheckUtils]: 37: Hoare triple {2669#(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)); {2555#true} is VALID [2022-04-07 12:54:05,337 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,337 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,337 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,338 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {2555#true} {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} #65#return; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,338 INFO L290 TraceCheckUtils]: 42: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !!(~x~0 <= ~X~0); {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,338 INFO L290 TraceCheckUtils]: 43: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,339 INFO L290 TraceCheckUtils]: 44: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,339 INFO L290 TraceCheckUtils]: 45: Hoare triple {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,339 INFO L272 TraceCheckUtils]: 46: Hoare triple {2697#(and (<= main_~x~0 3) (< 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)); {2555#true} is VALID [2022-04-07 12:54:05,340 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:05,340 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:05,340 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:05,340 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {2555#true} {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} #65#return; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:05,341 INFO L290 TraceCheckUtils]: 51: Hoare triple {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !(~x~0 <= ~X~0); {2556#false} is VALID [2022-04-07 12:54:05,341 INFO L290 TraceCheckUtils]: 52: Hoare triple {2556#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {2556#false} is VALID [2022-04-07 12:54:05,341 INFO L272 TraceCheckUtils]: 53: Hoare triple {2556#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)); {2556#false} is VALID [2022-04-07 12:54:05,341 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-07 12:54:05,341 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-07 12:54:05,341 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-07 12:54:05,342 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-07 12:54:05,342 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:54:06,021 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-07 12:54:06,021 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-07 12:54:06,021 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-07 12:54:06,022 INFO L272 TraceCheckUtils]: 53: Hoare triple {2556#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)); {2556#false} is VALID [2022-04-07 12:54:06,022 INFO L290 TraceCheckUtils]: 52: Hoare triple {2556#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {2556#false} is VALID [2022-04-07 12:54:06,022 INFO L290 TraceCheckUtils]: 51: Hoare triple {2749#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {2556#false} is VALID [2022-04-07 12:54:06,023 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {2555#true} {2749#(<= main_~x~0 main_~X~0)} #65#return; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:06,023 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,023 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,023 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,023 INFO L272 TraceCheckUtils]: 46: Hoare triple {2749#(<= 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)); {2555#true} is VALID [2022-04-07 12:54:06,024 INFO L290 TraceCheckUtils]: 45: Hoare triple {2749#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:06,025 INFO L290 TraceCheckUtils]: 44: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:06,025 INFO L290 TraceCheckUtils]: 43: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:06,025 INFO L290 TraceCheckUtils]: 42: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume !!(~x~0 <= ~X~0); {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:06,026 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {2555#true} {2771#(<= (+ main_~x~0 1) main_~X~0)} #65#return; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:06,026 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,026 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,026 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,026 INFO L272 TraceCheckUtils]: 37: Hoare triple {2771#(<= (+ 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)); {2555#true} is VALID [2022-04-07 12:54:06,026 INFO L290 TraceCheckUtils]: 36: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:06,027 INFO L290 TraceCheckUtils]: 35: Hoare triple {2799#(<= (+ main_~x~0 2) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:06,027 INFO L290 TraceCheckUtils]: 34: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< 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; {2799#(<= (+ main_~x~0 2) main_~X~0)} is VALID [2022-04-07 12:54:06,028 INFO L290 TraceCheckUtils]: 33: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} assume !!(~x~0 <= ~X~0); {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:06,028 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2555#true} {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} #65#return; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:06,028 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,028 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,028 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,029 INFO L272 TraceCheckUtils]: 28: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< 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)); {2555#true} is VALID [2022-04-07 12:54:06,029 INFO L290 TraceCheckUtils]: 27: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:06,029 INFO L290 TraceCheckUtils]: 26: Hoare triple {2828#(or (< main_~v~0 0) (<= (+ main_~x~0 3) main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:06,030 INFO L290 TraceCheckUtils]: 25: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2828#(or (< main_~v~0 0) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:06,030 INFO L290 TraceCheckUtils]: 24: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume !!(~x~0 <= ~X~0); {2832#(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-07 12:54:06,031 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2555#true} {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} #65#return; {2832#(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-07 12:54:06,031 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,031 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,031 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,031 INFO L272 TraceCheckUtils]: 19: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) 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)); {2555#true} is VALID [2022-04-07 12:54:06,032 INFO L290 TraceCheckUtils]: 18: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2832#(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-07 12:54:06,033 INFO L290 TraceCheckUtils]: 17: Hoare triple {2555#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2832#(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-07 12:54:06,033 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L272 TraceCheckUtils]: 12: Hoare triple {2555#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 11: Hoare triple {2555#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L272 TraceCheckUtils]: 6: Hoare triple {2555#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L290 TraceCheckUtils]: 5: Hoare triple {2555#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; {2555#true} is VALID [2022-04-07 12:54:06,033 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-07 12:54:06,034 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-07 12:54:06,034 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:06,034 INFO L290 TraceCheckUtils]: 1: Hoare triple {2555#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); {2555#true} is VALID [2022-04-07 12:54:06,034 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-07 12:54:06,034 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-07 12:54:06,034 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:54:06,034 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1093732608] [2022-04-07 12:54:06,034 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:54:06,035 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2023031570] [2022-04-07 12:54:06,035 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2023031570] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:54:06,035 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:54:06,035 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 14 [2022-04-07 12:54:06,035 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [422799797] [2022-04-07 12:54:06,035 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:54:06,036 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) Word has length 57 [2022-04-07 12:54:06,036 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:54:06,036 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:06,106 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:06,106 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-07 12:54:06,106 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:54:06,106 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-07 12:54:06,106 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=137, Unknown=0, NotChecked=0, Total=182 [2022-04-07 12:54:06,107 INFO L87 Difference]: Start difference. First operand 51 states and 59 transitions. Second operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:08,261 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:08,261 INFO L93 Difference]: Finished difference Result 78 states and 93 transitions. [2022-04-07 12:54:08,261 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:54:08,262 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) Word has length 57 [2022-04-07 12:54:08,262 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:54:08,262 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:08,264 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-07 12:54:08,264 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:08,265 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-07 12:54:08,266 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 64 transitions. [2022-04-07 12:54:08,326 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-07 12:54:08,329 INFO L225 Difference]: With dead ends: 78 [2022-04-07 12:54:08,329 INFO L226 Difference]: Without dead ends: 72 [2022-04-07 12:54:08,329 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 116 GetRequests, 101 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=64, Invalid=208, Unknown=0, NotChecked=0, Total=272 [2022-04-07 12:54:08,330 INFO L913 BasicCegarLoop]: 32 mSDtfsCounter, 8 mSDsluCounter, 163 mSDsCounter, 0 mSdLazyCounter, 222 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 8 SdHoareTripleChecker+Valid, 195 SdHoareTripleChecker+Invalid, 230 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Valid, 222 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.7s IncrementalHoareTripleChecker+Time [2022-04-07 12:54:08,330 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [8 Valid, 195 Invalid, 230 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [8 Valid, 222 Invalid, 0 Unknown, 0 Unchecked, 0.7s Time] [2022-04-07 12:54:08,330 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2022-04-07 12:54:08,363 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 56. [2022-04-07 12:54:08,363 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:54:08,364 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:08,365 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:08,365 INFO L87 Difference]: Start difference. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:08,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:08,371 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-07 12:54:08,371 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-07 12:54:08,372 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:08,372 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:08,372 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 72 states. [2022-04-07 12:54:08,372 INFO L87 Difference]: Start difference. First operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 72 states. [2022-04-07 12:54:08,377 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:08,377 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-07 12:54:08,377 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-07 12:54:08,377 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:08,377 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:08,377 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:54:08,377 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:54:08,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:08,380 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 66 transitions. [2022-04-07 12:54:08,380 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 66 transitions. Word has length 57 [2022-04-07 12:54:08,380 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:54:08,380 INFO L478 AbstractCegarLoop]: Abstraction has 56 states and 66 transitions. [2022-04-07 12:54:08,381 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:08,381 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 66 transitions. [2022-04-07 12:54:08,384 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-07 12:54:08,384 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:54:08,384 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:54:08,409 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Ended with exit code 0 [2022-04-07 12:54:08,604 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:08,604 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:54:08,604 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:54:08,604 INFO L85 PathProgramCache]: Analyzing trace with hash 2136090540, now seen corresponding path program 3 times [2022-04-07 12:54:08,604 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:54:08,605 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1107814313] [2022-04-07 12:54:08,605 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:08,605 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:54:08,619 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:54:08,620 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2075806050] [2022-04-07 12:54:08,620 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-07 12:54:08,620 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:08,620 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:54:08,624 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-07 12:54:08,624 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-07 12:54:08,917 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2022-04-07 12:54:08,917 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-07 12:54:08,918 INFO L263 TraceCheckSpWp]: Trace formula consists of 117 conjuncts, 32 conjunts are in the unsatisfiable core [2022-04-07 12:54:08,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:08,964 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:54:24,092 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:54:31,345 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:54:33,737 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:56:00,151 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-07 12:56:00,151 INFO L290 TraceCheckUtils]: 1: Hoare triple {3248#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); {3248#true} is VALID [2022-04-07 12:56:00,151 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:00,152 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-07 12:56:00,152 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-07 12:56:00,152 INFO L290 TraceCheckUtils]: 5: Hoare triple {3248#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; {3248#true} is VALID [2022-04-07 12:56:00,152 INFO L272 TraceCheckUtils]: 6: Hoare triple {3248#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:56:00,155 INFO L290 TraceCheckUtils]: 7: Hoare triple {3248#true} ~cond := #in~cond; {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-07 12:56:00,156 INFO L290 TraceCheckUtils]: 8: Hoare triple {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:00,156 INFO L290 TraceCheckUtils]: 9: Hoare triple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:00,157 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} {3248#true} #61#return; {3285#(and (<= main_~X~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,157 INFO L290 TraceCheckUtils]: 11: Hoare triple {3285#(and (<= main_~X~0 20) (<= 0 main_~X~0))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3285#(and (<= main_~X~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,157 INFO L272 TraceCheckUtils]: 12: Hoare triple {3285#(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)); {3248#true} is VALID [2022-04-07 12:56:00,158 INFO L290 TraceCheckUtils]: 13: Hoare triple {3248#true} ~cond := #in~cond; {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-07 12:56:00,158 INFO L290 TraceCheckUtils]: 14: Hoare triple {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:00,158 INFO L290 TraceCheckUtils]: 15: Hoare triple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:00,159 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} {3285#(and (<= main_~X~0 20) (<= 0 main_~X~0))} #63#return; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,160 INFO L290 TraceCheckUtils]: 17: Hoare triple {3304#(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; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,160 INFO L290 TraceCheckUtils]: 18: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,160 INFO L272 TraceCheckUtils]: 19: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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)); {3248#true} is VALID [2022-04-07 12:56:00,160 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:00,161 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:00,161 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:00,161 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3248#true} {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #65#return; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,162 INFO L290 TraceCheckUtils]: 24: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !!(~x~0 <= ~X~0); {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,162 INFO L290 TraceCheckUtils]: 25: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,162 INFO L290 TraceCheckUtils]: 26: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,163 INFO L290 TraceCheckUtils]: 27: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,163 INFO L272 TraceCheckUtils]: 28: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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)); {3248#true} is VALID [2022-04-07 12:56:00,163 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:00,163 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:00,163 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:00,164 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3248#true} {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #65#return; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,164 INFO L290 TraceCheckUtils]: 33: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !!(~x~0 <= ~X~0); {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,165 INFO L290 TraceCheckUtils]: 34: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,165 INFO L290 TraceCheckUtils]: 35: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,166 INFO L290 TraceCheckUtils]: 36: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,166 INFO L272 TraceCheckUtils]: 37: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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)); {3248#true} is VALID [2022-04-07 12:56:00,166 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:00,166 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:00,166 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:00,167 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {3248#true} {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #65#return; {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,167 INFO L290 TraceCheckUtils]: 42: Hoare triple {3304#(and (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume !!(~x~0 <= ~X~0); {3383#(and (<= main_~x~0 main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,168 INFO L290 TraceCheckUtils]: 43: Hoare triple {3383#(and (<= main_~x~0 main_~X~0) (<= main_~X~0 20) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3387#(and (<= main_~x~0 main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} is VALID [2022-04-07 12:56:00,169 INFO L290 TraceCheckUtils]: 44: Hoare triple {3387#(and (<= main_~x~0 main_~X~0) (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3391#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:56:00,169 INFO L290 TraceCheckUtils]: 45: Hoare triple {3391#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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; {3395#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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-07 12:56:00,170 INFO L272 TraceCheckUtils]: 46: Hoare triple {3395#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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)); {3248#true} is VALID [2022-04-07 12:56:00,170 INFO L290 TraceCheckUtils]: 47: Hoare triple {3248#true} ~cond := #in~cond; {3402#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:56:00,170 INFO L290 TraceCheckUtils]: 48: Hoare triple {3402#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:56:00,170 INFO L290 TraceCheckUtils]: 49: Hoare triple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:56:00,172 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} {3395#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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; {3413#(and (<= 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_~Y~0 20) (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:56:00,172 INFO L290 TraceCheckUtils]: 51: Hoare triple {3413#(and (<= 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_~Y~0 20) (<= 0 main_~X~0) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {3417#(and (<= 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_~Y~0 20) (<= 0 main_~X~0) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:56:00,493 INFO L290 TraceCheckUtils]: 52: Hoare triple {3417#(and (<= 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_~Y~0 20) (<= 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; {3421#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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 VALID [2022-04-07 12:56:00,507 INFO L272 TraceCheckUtils]: 53: Hoare triple {3421#(and (<= main_~X~0 20) (< main_~v~0 (* main_~Y~0 2)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 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)); {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:56:00,507 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:56:00,508 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-07 12:56:00,508 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-07 12:56:00,508 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-07 12:56:00,508 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:56:09,255 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:56:17,550 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:57:01,449 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-07 12:57:01,450 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-07 12:57:01,450 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:57:01,451 INFO L272 TraceCheckUtils]: 53: Hoare triple {3445#(= (+ (* 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)); {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:57:01,453 INFO L290 TraceCheckUtils]: 52: Hoare triple {3449#(= (+ (* 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; {3445#(= (+ (* 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-07 12:57:01,453 INFO L290 TraceCheckUtils]: 51: Hoare triple {3453#(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); {3449#(= (+ (* 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-07 12:57:01,455 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} {3457#(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; {3453#(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-07 12:57:01,455 INFO L290 TraceCheckUtils]: 49: Hoare triple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:57:01,455 INFO L290 TraceCheckUtils]: 48: Hoare triple {3467#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:57:01,456 INFO L290 TraceCheckUtils]: 47: Hoare triple {3248#true} ~cond := #in~cond; {3467#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:57:01,456 INFO L272 TraceCheckUtils]: 46: Hoare triple {3457#(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)); {3248#true} is VALID [2022-04-07 12:57:03,459 WARN L290 TraceCheckUtils]: 45: Hoare triple {3474#(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; {3457#(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-07 12:57:03,472 INFO L290 TraceCheckUtils]: 44: Hoare triple {3478#(forall ((v_main_~x~0_30 Int)) (or (not (<= v_main_~x~0_30 (+ main_~x~0 1))) (and (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_30 main_~y~0)) main_~X~0 main_~v~0) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)))) (not (= main_~X~0 0)) (not (= 0 (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0)))) (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (= main_~X~0 0) (= (+ main_~X~0 main_~v~0 (* (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0)) 2)) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 2) (* main_~Y~0 2))) (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 0)))) (<= v_main_~x~0_30 main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3474#(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-07 12:57:05,518 WARN L290 TraceCheckUtils]: 43: Hoare triple {3482#(forall ((v_main_~x~0_30 Int)) (or (not (<= v_main_~x~0_30 (+ main_~x~0 1))) (<= v_main_~x~0_30 main_~X~0) (and (or (and (or (<= (div (- main_~X~0) (- 2)) (* v_main_~x~0_30 main_~Y~0)) (forall ((main_~y~0 Int)) (<= main_~y~0 (* v_main_~x~0_30 main_~y~0)))) (or (<= (div (- main_~X~0) (- 2)) (* v_main_~x~0_30 main_~Y~0)) (forall ((main_~y~0 Int)) (<= (* v_main_~x~0_30 main_~y~0) main_~y~0)))) (not (= main_~X~0 0))) (or (forall ((aux_div_main_~v~0_66 Int)) (or (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0) 0)) (<= main_~X~0 (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* 2 aux_div_main_~v~0_66))) (= (+ (* 2 (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0))) (* 2 aux_div_main_~v~0_66)) (* (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0) 2)))) (= main_~X~0 0)))))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3478#(forall ((v_main_~x~0_30 Int)) (or (not (<= v_main_~x~0_30 (+ main_~x~0 1))) (and (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_30 main_~y~0)) main_~X~0 main_~v~0) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)))) (not (= main_~X~0 0)) (not (= 0 (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0)))) (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (= main_~X~0 0) (= (+ main_~X~0 main_~v~0 (* (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0)) 2)) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 2) (* main_~Y~0 2))) (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 0)))) (<= v_main_~x~0_30 main_~X~0)))} is UNKNOWN [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 42: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3482#(forall ((v_main_~x~0_30 Int)) (or (not (<= v_main_~x~0_30 (+ main_~x~0 1))) (<= v_main_~x~0_30 main_~X~0) (and (or (and (or (<= (div (- main_~X~0) (- 2)) (* v_main_~x~0_30 main_~Y~0)) (forall ((main_~y~0 Int)) (<= main_~y~0 (* v_main_~x~0_30 main_~y~0)))) (or (<= (div (- main_~X~0) (- 2)) (* v_main_~x~0_30 main_~Y~0)) (forall ((main_~y~0 Int)) (<= (* v_main_~x~0_30 main_~y~0) main_~y~0)))) (not (= main_~X~0 0))) (or (forall ((aux_div_main_~v~0_66 Int)) (or (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0) 0)) (<= main_~X~0 (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* 2 aux_div_main_~v~0_66))) (= (+ (* 2 (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0))) (* 2 aux_div_main_~v~0_66)) (* (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* v_main_~x~0_30 main_~Y~0 2) (* main_~Y~0 2) (* 2 aux_div_main_~v~0_66)) (- 2))) main_~X~0) 2)))) (= main_~X~0 0)))))} is VALID [2022-04-07 12:57:05,534 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L272 TraceCheckUtils]: 37: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 36: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 35: Hoare triple {3248#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 34: Hoare triple {3248#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3248#true} is VALID [2022-04-07 12:57:05,534 INFO L290 TraceCheckUtils]: 33: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L272 TraceCheckUtils]: 28: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 27: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 26: Hoare triple {3248#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 25: Hoare triple {3248#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; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 24: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L272 TraceCheckUtils]: 19: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 18: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 17: Hoare triple {3248#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3248#true} {3248#true} #63#return; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 15: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 14: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:05,535 INFO L290 TraceCheckUtils]: 13: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L272 TraceCheckUtils]: 12: Hoare triple {3248#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 20 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 11: Hoare triple {3248#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3248#true} {3248#true} #61#return; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 9: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 8: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 7: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L272 TraceCheckUtils]: 6: Hoare triple {3248#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 20 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 5: Hoare triple {3248#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; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L290 TraceCheckUtils]: 1: Hoare triple {3248#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); {3248#true} is VALID [2022-04-07 12:57:05,536 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-07 12:57:05,536 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-07 12:57:05,536 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:57:05,537 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1107814313] [2022-04-07 12:57:05,537 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:57:05,537 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2075806050] [2022-04-07 12:57:05,537 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2075806050] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:57:05,537 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:57:05,537 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 13] total 25 [2022-04-07 12:57:05,537 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1604134224] [2022-04-07 12:57:05,537 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:57:05,537 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 57 [2022-04-07 12:57:05,538 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:57:05,538 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:10,513 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 64 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-07 12:57:10,513 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 25 states [2022-04-07 12:57:10,513 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:57:10,514 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2022-04-07 12:57:10,514 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=497, Unknown=5, NotChecked=0, Total=600 [2022-04-07 12:57:10,515 INFO L87 Difference]: Start difference. First operand 56 states and 66 transitions. Second operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:13,545 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.27s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:57:23,824 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-07 12:57:48,596 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:57:48,597 INFO L93 Difference]: Finished difference Result 62 states and 74 transitions. [2022-04-07 12:57:48,597 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2022-04-07 12:57:48,597 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 57 [2022-04-07 12:57:48,597 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:57:48,597 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:48,599 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-07 12:57:48,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:48,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-07 12:57:48,600 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 23 states and 45 transitions. [2022-04-07 12:57:51,898 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:57:51,898 INFO L225 Difference]: With dead ends: 62 [2022-04-07 12:57:51,898 INFO L226 Difference]: Without dead ends: 0 [2022-04-07 12:57:51,899 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 90 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 277 ImplicationChecksByTransitivity, 45.4s TimeCoverageRelationStatistics Valid=242, Invalid=1084, Unknown=6, NotChecked=0, Total=1332 [2022-04-07 12:57:51,899 INFO L913 BasicCegarLoop]: 16 mSDtfsCounter, 33 mSDsluCounter, 153 mSDsCounter, 0 mSdLazyCounter, 331 mSolverCounterSat, 16 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 7.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 35 SdHoareTripleChecker+Valid, 169 SdHoareTripleChecker+Invalid, 398 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 16 IncrementalHoareTripleChecker+Valid, 331 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 50 IncrementalHoareTripleChecker+Unchecked, 7.2s IncrementalHoareTripleChecker+Time [2022-04-07 12:57:51,899 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [35 Valid, 169 Invalid, 398 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [16 Valid, 331 Invalid, 1 Unknown, 50 Unchecked, 7.2s Time] [2022-04-07 12:57:51,899 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-04-07 12:57:51,900 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-04-07 12:57:51,900 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:57:51,900 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:57:51,900 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:57:51,900 INFO L87 Difference]: Start difference. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:57:51,900 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:57:51,900 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-07 12:57:51,900 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:57:51,900 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:57:51,900 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:57:51,900 INFO L74 IsIncluded]: Start isIncluded. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-07 12:57:51,900 INFO L87 Difference]: Start difference. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-07 12:57:51,901 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:57:51,901 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-07 12:57:51,901 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:57:51,901 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:57:51,901 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:57:51,901 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:57:51,901 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:57:51,901 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:57:51,901 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-04-07 12:57:51,901 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 57 [2022-04-07 12:57:51,901 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:57:51,901 INFO L478 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-04-07 12:57:51,902 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:51,902 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:57:51,902 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:57:51,904 INFO L788 garLoopResultBuilder]: Registering result SAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-04-07 12:57:51,908 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-04-07 12:57:52,104 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:57:52,106 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-04-07 12:58:20,337 WARN L232 SmtUtils]: Spent 28.11s on a formula simplification. DAG size of input: 114 DAG size of output: 38 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-07 12:58:28,222 WARN L232 SmtUtils]: Spent 7.86s on a formula simplification. DAG size of input: 134 DAG size of output: 45 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-07 12:58:28,678 INFO L882 garLoopResultBuilder]: For program point reach_errorEXIT(line 7) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point reach_errorENTRY(line 7) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point reach_errorFINAL(line 7) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L885 garLoopResultBuilder]: At program point assume_abort_if_notENTRY(lines 10 12) the Hoare annotation is: true [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point L11(line 11) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point L11-2(lines 10 12) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point assume_abort_if_notEXIT(lines 10 12) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L878 garLoopResultBuilder]: At program point L27(line 27) the Hoare annotation is: (and (<= main_~X~0 20) (<= 0 main_~X~0)) [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point L27-1(line 27) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L885 garLoopResultBuilder]: At program point L25(line 25) the Hoare annotation is: true [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point mainEXIT(lines 21 53) no Hoare annotation was computed. [2022-04-07 12:58:28,679 INFO L882 garLoopResultBuilder]: For program point L25-1(line 25) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L878 garLoopResultBuilder]: At program point L50(line 50) the Hoare annotation is: (let ((.cse2 (* main_~y~0 2)) (.cse0 (* main_~Y~0 2)) (.cse1 (* 2 (* main_~Y~0 main_~x~0)))) (and (= (+ .cse0 .cse1) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (+ .cse2 .cse0 (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ .cse2 .cse0 .cse1)))) [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point L50-1(line 50) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point mainFINAL(lines 21 53) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point L40(lines 40 45) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point L40-2(lines 40 45) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L878 garLoopResultBuilder]: At program point L32-2(lines 32 47) the Hoare annotation is: (let ((.cse0 (<= main_~x~0 main_~X~0))) (and (or .cse0 (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))) (or .cse0 (forall ((main_~Y~0 Int)) (= (* 2 (* main_~y~0 main_~x~0)) (+ (* (* main_~X~0 main_~y~0) 2) (* main_~y~0 2))))) (<= 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)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0))) [2022-04-07 12:58:28,680 INFO L885 garLoopResultBuilder]: At program point mainENTRY(lines 21 53) the Hoare annotation is: true [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point L32-3(lines 32 47) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L878 garLoopResultBuilder]: At program point L35(line 35) the Hoare annotation is: (let ((.cse1 (* main_~Y~0 2)) (.cse0 (* 2 main_~xy~0)) (.cse4 (* 2 (* main_~Y~0 main_~x~0))) (.cse2 (* 2 main_~yx~0)) (.cse3 (<= main_~x~0 main_~X~0))) (and (= (+ .cse0 main_~X~0 main_~v~0) (+ .cse1 .cse2)) (or .cse3 (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))) (<= main_~X~0 20) (= (+ .cse1 .cse4) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= 0 main_~Y~0) (<= main_~Y~0 20) (<= 0 main_~X~0) (or (= (+ .cse0 (* main_~y~0 2) .cse4) (+ (* 2 (* main_~y~0 main_~x~0)) .cse2)) .cse3))) [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point L35-1(lines 32 47) no Hoare annotation was computed. [2022-04-07 12:58:28,680 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L878 garLoopResultBuilder]: At program point ULTIMATE.initENTRY(line -1) the Hoare annotation is: (and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|)) [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L885 garLoopResultBuilder]: At program point L-1(line -1) the Hoare annotation is: true [2022-04-07 12:58:28,681 INFO L885 garLoopResultBuilder]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point L15(lines 15 16) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L885 garLoopResultBuilder]: At program point __VERIFIER_assertENTRY(lines 13 19) the Hoare annotation is: true [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point L14(lines 14 17) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point L14-2(lines 13 19) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertEXIT(lines 13 19) no Hoare annotation was computed. [2022-04-07 12:58:28,681 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 16) no Hoare annotation was computed. [2022-04-07 12:58:28,684 INFO L719 BasicCegarLoop]: Path program histogram: [3, 1, 1, 1, 1, 1] [2022-04-07 12:58:28,684 INFO L178 ceAbstractionStarter]: Computing trace abstraction results [2022-04-07 12:58:28,687 WARN L170 areAnnotationChecker]: reach_errorENTRY has no Hoare annotation [2022-04-07 12:58:28,687 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: reach_errorFINAL has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:58:28,688 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L11-2 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L14-2 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:58:28,689 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:58:28,693 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:58:28,693 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-07 12:58:28,693 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-07 12:58:28,693 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2022-04-07 12:58:28,693 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:58:28,694 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-07 12:58:28,694 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2022-04-07 12:58:28,694 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2022-04-07 12:58:28,694 INFO L163 areAnnotationChecker]: CFG has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2022-04-07 12:58:28,698 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,698 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,702 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,702 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,703 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 07.04 12:58:28 BoogieIcfgContainer [2022-04-07 12:58:28,703 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-04-07 12:58:28,704 INFO L158 Benchmark]: Toolchain (without parser) took 348101.20ms. Allocated memory was 194.0MB in the beginning and 261.1MB in the end (delta: 67.1MB). Free memory was 141.0MB in the beginning and 226.0MB in the end (delta: -85.0MB). Peak memory consumption was 126.5MB. Max. memory is 8.0GB. [2022-04-07 12:58:28,704 INFO L158 Benchmark]: CDTParser took 0.10ms. Allocated memory is still 194.0MB. Free memory is still 156.9MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-07 12:58:28,704 INFO L158 Benchmark]: CACSL2BoogieTranslator took 230.76ms. Allocated memory is still 194.0MB. Free memory was 140.8MB in the beginning and 167.3MB in the end (delta: -26.5MB). Peak memory consumption was 13.8MB. Max. memory is 8.0GB. [2022-04-07 12:58:28,704 INFO L158 Benchmark]: Boogie Preprocessor took 24.26ms. Allocated memory is still 194.0MB. Free memory was 167.3MB in the beginning and 165.8MB in the end (delta: 1.5MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. [2022-04-07 12:58:28,705 INFO L158 Benchmark]: RCFGBuilder took 331.31ms. Allocated memory is still 194.0MB. Free memory was 165.8MB in the beginning and 153.7MB in the end (delta: 12.1MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. [2022-04-07 12:58:28,705 INFO L158 Benchmark]: TraceAbstraction took 347510.75ms. Allocated memory was 194.0MB in the beginning and 261.1MB in the end (delta: 67.1MB). Free memory was 153.3MB in the beginning and 226.0MB in the end (delta: -72.8MB). Peak memory consumption was 138.9MB. Max. memory is 8.0GB. [2022-04-07 12:58:28,706 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.10ms. Allocated memory is still 194.0MB. Free memory is still 156.9MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 230.76ms. Allocated memory is still 194.0MB. Free memory was 140.8MB in the beginning and 167.3MB in the end (delta: -26.5MB). Peak memory consumption was 13.8MB. Max. memory is 8.0GB. * Boogie Preprocessor took 24.26ms. Allocated memory is still 194.0MB. Free memory was 167.3MB in the beginning and 165.8MB in the end (delta: 1.5MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. * RCFGBuilder took 331.31ms. Allocated memory is still 194.0MB. Free memory was 165.8MB in the beginning and 153.7MB in the end (delta: 12.1MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. * TraceAbstraction took 347510.75ms. Allocated memory was 194.0MB in the beginning and 261.1MB in the end (delta: 67.1MB). Free memory was 153.3MB in the beginning and 226.0MB in the end (delta: -72.8MB). Peak memory consumption was 138.9MB. Max. memory is 8.0GB. * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - PositiveResult [Line: 16]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - StatisticsResult: Ultimate Automizer benchmark data CFG has 6 procedures, 35 locations, 1 error locations. Started 1 CEGAR loops. OverallTime: 347.4s, OverallIterations: 8, TraceHistogramMax: 5, PathProgramHistogramMax: 3, EmptinessCheckTime: 0.0s, AutomataDifference: 67.6s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 36.6s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 7 mSolverCounterUnknown, 151 SdHoareTripleChecker+Valid, 21.5s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 143 mSDsluCounter, 1078 SdHoareTripleChecker+Invalid, 21.4s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 148 IncrementalHoareTripleChecker+Unchecked, 886 mSDsCounter, 96 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 1299 IncrementalHoareTripleChecker+Invalid, 1550 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 96 mSolverCounterUnsat, 192 mSDtfsCounter, 1299 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 634 GetRequests, 493 SyntacticMatches, 6 SemanticMatches, 135 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 668 ImplicationChecksByTransitivity, 52.4s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=56occurred in iteration=7, InterpolantAutomatonStates: 103, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 0.2s AutomataMinimizationTime, 8 MinimizatonAttempts, 43 StatesRemovedByMinimization, 6 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 11 LocationsWithAnnotation, 29 PreInvPairs, 50 NumberOfFragments, 259 HoareAnnotationTreeSize, 29 FomulaSimplifications, 792 FormulaSimplificationTreeSizeReduction, 0.1s HoareSimplificationTime, 11 FomulaSimplificationsInter, 4663 FormulaSimplificationTreeSizeReductionInter, 36.4s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 233.1s InterpolantComputationTime, 327 NumberOfCodeBlocks, 309 NumberOfCodeBlocksAsserted, 10 NumberOfCheckSat, 594 ConstructedInterpolants, 6 QuantifiedInterpolants, 3378 SizeOfPredicates, 50 NumberOfNonLiveVariables, 854 ConjunctsInSsa, 129 ConjunctsInUnsatCore, 14 InterpolantComputations, 2 PerfectInterpolantSequences, 339/426 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available - AllSpecificationsHoldResult: All specifications hold 1 specifications checked. All of them hold - InvariantResult [Line: 32]: Loop Invariant [2022-04-07 12:58:28,712 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,712 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,712 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:58:28,713 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] Derived loop invariant: (((((((x <= X || (forall main_~y~0 : int :: 2 * (main_~y~0 * x) + X + v == main_~y~0 * 2 + Y * 2 + 2 * (Y * x))) || !(X == 0)) && (x <= X || (forall main_~Y~0 : int :: 2 * (y * x) == X * y * 2 + y * 2))) && X <= 20) && Y * 2 + 2 * (Y * x) == X * y * 2 + X + v) && 0 <= Y) && Y <= 20) && 0 <= X RESULT: Ultimate proved your program to be correct! [2022-04-07 12:58:28,923 WARN L435 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forcibly destroying the process [2022-04-07 12:58:28,955 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 137 Received shutdown request...