/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_valuebound50.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-e106359-m [2022-04-14 15:07:43,643 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-14 15:07:43,650 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-14 15:07:43,685 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-14 15:07:43,685 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-14 15:07:43,686 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-14 15:07:43,687 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-14 15:07:43,688 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-14 15:07:43,689 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-14 15:07:43,689 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-14 15:07:43,690 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-14 15:07:43,691 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-14 15:07:43,691 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-14 15:07:43,692 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-14 15:07:43,692 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-14 15:07:43,693 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-14 15:07:43,693 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-14 15:07:43,694 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-14 15:07:43,695 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-14 15:07:43,696 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-14 15:07:43,697 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-14 15:07:43,703 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-14 15:07:43,703 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-14 15:07:43,704 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-14 15:07:43,704 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-14 15:07:43,706 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-14 15:07:43,706 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-14 15:07:43,706 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-14 15:07:43,707 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-14 15:07:43,707 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-14 15:07:43,708 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-14 15:07:43,708 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-14 15:07:43,708 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-14 15:07:43,708 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-14 15:07:43,709 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-14 15:07:43,709 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-14 15:07:43,710 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-14 15:07:43,710 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-14 15:07:43,710 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-14 15:07:43,710 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-14 15:07:43,711 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-14 15:07:43,711 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-14 15:07:43,712 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-14 15:07:43,731 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-14 15:07:43,731 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-14 15:07:43,731 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-04-14 15:07:43,731 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-04-14 15:07:43,732 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-04-14 15:07:43,732 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-04-14 15:07:43,732 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-04-14 15:07:43,732 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-04-14 15:07:43,732 INFO L138 SettingsManager]: * Use SBE=true [2022-04-14 15:07:43,733 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-14 15:07:43,733 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-14 15:07:43,734 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-14 15:07:43,734 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 15:07:43,735 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-14 15:07:43,735 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-04-14 15:07:43,735 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-04-14 15:07:43,739 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-04-14 15:07:43,739 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-04-14 15:07:43,739 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-04-14 15:07:43,739 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-04-14 15:07:43,740 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-14 15:07:43,740 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-14 15:07:43,905 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-14 15:07:43,920 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-14 15:07:43,921 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-14 15:07:43,922 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-14 15:07:43,923 INFO L275 PluginConnector]: CDTParser initialized [2022-04-14 15:07:43,924 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound50.c [2022-04-14 15:07:43,967 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2e6c374de/d63726d8cd0b48e6b6bc84f3ff4b1d0d/FLAG7d510a6b0 [2022-04-14 15:07:44,307 INFO L306 CDTParser]: Found 1 translation units. [2022-04-14 15:07:44,307 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound50.c [2022-04-14 15:07:44,311 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2e6c374de/d63726d8cd0b48e6b6bc84f3ff4b1d0d/FLAG7d510a6b0 [2022-04-14 15:07:44,321 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/2e6c374de/d63726d8cd0b48e6b6bc84f3ff4b1d0d [2022-04-14 15:07:44,322 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-14 15:07:44,324 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-14 15:07:44,327 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-14 15:07:44,327 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-14 15:07:44,329 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-14 15:07:44,332 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,333 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@2250bcb7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44, skipping insertion in model container [2022-04-14 15:07:44,333 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,337 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-14 15:07:44,348 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-14 15:07:44,454 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_valuebound50.c[597,610] [2022-04-14 15:07:44,468 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 15:07:44,473 INFO L203 MainTranslator]: Completed pre-run [2022-04-14 15:07:44,480 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_valuebound50.c[597,610] [2022-04-14 15:07:44,489 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 15:07:44,498 INFO L208 MainTranslator]: Completed translation [2022-04-14 15:07:44,498 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44 WrapperNode [2022-04-14 15:07:44,498 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-14 15:07:44,499 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-14 15:07:44,499 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-14 15:07:44,499 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-14 15:07:44,505 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,505 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,509 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,509 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,513 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,515 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,516 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,517 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-14 15:07:44,518 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-14 15:07:44,518 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-14 15:07:44,518 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-14 15:07:44,519 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (1/1) ... [2022-04-14 15:07:44,530 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 15:07:44,539 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:07:44,549 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-14 15:07:44,561 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-14 15:07:44,578 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-14 15:07:44,578 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-14 15:07:44,578 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-14 15:07:44,578 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-14 15:07:44,578 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-14 15:07:44,579 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-14 15:07:44,579 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-14 15:07:44,580 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-14 15:07:44,631 INFO L234 CfgBuilder]: Building ICFG [2022-04-14 15:07:44,632 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-14 15:07:44,787 INFO L275 CfgBuilder]: Performing block encoding [2022-04-14 15:07:44,792 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-14 15:07:44,792 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-14 15:07:44,793 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 03:07:44 BoogieIcfgContainer [2022-04-14 15:07:44,794 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-14 15:07:44,795 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-14 15:07:44,795 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-14 15:07:44,813 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-14 15:07:44,813 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.04 03:07:44" (1/3) ... [2022-04-14 15:07:44,814 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7ed8c2cf and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 03:07:44, skipping insertion in model container [2022-04-14 15:07:44,814 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 03:07:44" (2/3) ... [2022-04-14 15:07:44,814 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7ed8c2cf and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 03:07:44, skipping insertion in model container [2022-04-14 15:07:44,814 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 03:07:44" (3/3) ... [2022-04-14 15:07:44,815 INFO L111 eAbstractionObserver]: Analyzing ICFG bresenham-ll_valuebound50.c [2022-04-14 15:07:44,818 INFO L202 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-04-14 15:07:44,818 INFO L161 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-14 15:07:44,848 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-14 15:07:44,854 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-14 15:07:44,854 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-14 15:07:44,870 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-14 15:07:44,873 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-14 15:07:44,873 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:07:44,873 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-14 15:07:44,874 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:07:44,877 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:07:44,877 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 1 times [2022-04-14 15:07:44,885 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:07:44,885 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2097437574] [2022-04-14 15:07:44,885 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:44,886 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:07:44,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:44,984 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-14 15:07:44,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:44,998 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-14 15:07:44,998 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-14 15:07:44,998 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-14 15:07:44,999 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-14 15:07:45,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:45,005 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 15:07:45,005 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 15:07:45,005 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 15:07:45,005 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-14 15:07:45,006 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-14 15:07:45,007 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:45,011 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 15:07:45,012 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 15:07:45,012 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 15:07:45,012 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-14 15:07:45,013 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-14 15:07:45,013 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-14 15:07:45,013 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-14 15:07:45,013 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-14 15:07:45,014 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret8 := main(); {35#true} is VALID [2022-04-14 15:07:45,014 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-14 15:07:45,014 INFO L272 TraceCheckUtils]: 6: Hoare triple {35#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {35#true} is VALID [2022-04-14 15:07:45,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 15:07:45,015 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 15:07:45,015 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 15:07:45,015 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-14 15:07:45,015 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-14 15:07:45,016 INFO L272 TraceCheckUtils]: 12: Hoare triple {36#false} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {35#true} is VALID [2022-04-14 15:07:45,017 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 15:07:45,018 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 15:07:45,018 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 15:07:45,018 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-14 15:07:45,018 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-14 15:07:45,019 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-14 15:07:45,019 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-14 15:07:45,019 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-14 15:07:45,020 INFO L290 TraceCheckUtils]: 21: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-14 15:07:45,020 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-14 15:07:45,020 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-14 15:07:45,020 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:07:45,021 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2097437574] [2022-04-14 15:07:45,021 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [2097437574] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 15:07:45,021 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 15:07:45,021 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-14 15:07:45,022 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [963324891] [2022-04-14 15:07:45,023 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 15:07:45,026 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-14 15:07:45,027 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:07:45,029 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-14 15:07:45,051 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-14 15:07:45,051 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-14 15:07:45,051 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:07:45,076 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-14 15:07:45,077 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-14 15:07:45,078 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-14 15:07:45,194 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,194 INFO L93 Difference]: Finished difference Result 57 states and 74 transitions. [2022-04-14 15:07:45,194 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-14 15:07:45,194 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-14 15:07:45,195 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:07:45,195 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-14 15:07:45,201 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-14 15:07:45,201 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-14 15:07:45,204 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-14 15:07:45,205 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2022-04-14 15:07:45,269 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-14 15:07:45,278 INFO L225 Difference]: With dead ends: 57 [2022-04-14 15:07:45,278 INFO L226 Difference]: Without dead ends: 27 [2022-04-14 15:07:45,280 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-14 15:07:45,284 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-14 15:07:45,285 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-14 15:07:45,296 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-14 15:07:45,309 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-14 15:07:45,309 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:07:45,311 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-14 15:07:45,314 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-14 15:07:45,314 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-14 15:07:45,319 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,319 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-14 15:07:45,319 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-14 15:07:45,321 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:45,321 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:45,322 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-14 15:07:45,323 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-14 15:07:45,326 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,348 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-14 15:07:45,348 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-14 15:07:45,348 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:45,348 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:45,348 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:07:45,349 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:07:45,349 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-14 15:07:45,350 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 30 transitions. [2022-04-14 15:07:45,351 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 30 transitions. Word has length 23 [2022-04-14 15:07:45,352 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:07:45,352 INFO L478 AbstractCegarLoop]: Abstraction has 27 states and 30 transitions. [2022-04-14 15:07:45,352 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-14 15:07:45,352 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-14 15:07:45,353 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-14 15:07:45,353 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:07:45,353 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-14 15:07:45,353 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-14 15:07:45,353 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:07:45,354 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:07:45,354 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 1 times [2022-04-14 15:07:45,354 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:07:45,354 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [364266888] [2022-04-14 15:07:45,354 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:45,354 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:07:45,382 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:07:45,382 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2145746256] [2022-04-14 15:07:45,382 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:45,382 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:07:45,383 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:07:45,387 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 15:07:45,390 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-14 15:07:45,446 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:45,447 INFO L263 TraceCheckSpWp]: Trace formula consists of 84 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-14 15:07:45,457 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:45,460 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:07:45,636 INFO L272 TraceCheckUtils]: 0: Hoare triple {217#true} call ULTIMATE.init(); {217#true} is VALID [2022-04-14 15:07:45,637 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-14 15:07:45,637 INFO L290 TraceCheckUtils]: 2: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-14 15:07:45,637 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {217#true} {217#true} #69#return; {217#true} is VALID [2022-04-14 15:07:45,637 INFO L272 TraceCheckUtils]: 4: Hoare triple {217#true} call #t~ret8 := main(); {217#true} is VALID [2022-04-14 15:07:45,637 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-14 15:07:45,637 INFO L272 TraceCheckUtils]: 6: Hoare triple {217#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {217#true} is VALID [2022-04-14 15:07:45,637 INFO L290 TraceCheckUtils]: 7: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-14 15:07:45,638 INFO L290 TraceCheckUtils]: 8: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-14 15:07:45,638 INFO L290 TraceCheckUtils]: 9: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-14 15:07:45,638 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {217#true} {217#true} #61#return; {217#true} is VALID [2022-04-14 15:07:45,638 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-14 15:07:45,638 INFO L272 TraceCheckUtils]: 12: Hoare triple {217#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {217#true} is VALID [2022-04-14 15:07:45,638 INFO L290 TraceCheckUtils]: 13: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-14 15:07:45,641 INFO L290 TraceCheckUtils]: 14: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-14 15:07:45,641 INFO L290 TraceCheckUtils]: 15: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-14 15:07:45,641 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {217#true} {217#true} #63#return; {217#true} is VALID [2022-04-14 15:07:45,643 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-14 15:07:45,644 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-14 15:07:45,645 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-14 15:07:45,646 INFO L290 TraceCheckUtils]: 20: Hoare triple {281#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {285#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:45,648 INFO L290 TraceCheckUtils]: 21: Hoare triple {285#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {218#false} is VALID [2022-04-14 15:07:45,649 INFO L290 TraceCheckUtils]: 22: Hoare triple {218#false} assume !false; {218#false} is VALID [2022-04-14 15:07:45,649 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-14 15:07:45,649 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 15:07:45,649 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:07:45,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [364266888] [2022-04-14 15:07:45,650 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:07:45,650 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2145746256] [2022-04-14 15:07:45,653 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2145746256] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 15:07:45,653 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 15:07:45,653 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-14 15:07:45,654 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1108852938] [2022-04-14 15:07:45,654 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 15:07:45,655 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-14 15:07:45,656 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:07:45,656 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-14 15:07:45,671 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-14 15:07:45,671 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-14 15:07:45,672 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:07:45,673 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-14 15:07:45,673 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-14 15:07:45,673 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-14 15:07:45,862 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,862 INFO L93 Difference]: Finished difference Result 39 states and 44 transitions. [2022-04-14 15:07:45,862 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-14 15:07:45,862 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-14 15:07:45,862 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:07:45,863 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-14 15:07:45,864 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-14 15:07:45,864 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-14 15:07:45,866 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-14 15:07:45,866 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2022-04-14 15:07:45,897 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-14 15:07:45,898 INFO L225 Difference]: With dead ends: 39 [2022-04-14 15:07:45,898 INFO L226 Difference]: Without dead ends: 35 [2022-04-14 15:07:45,899 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-14 15:07:45,899 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 10 mSDsluCounter, 69 mSDsCounter, 0 mSdLazyCounter, 61 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 10 SdHoareTripleChecker+Valid, 91 SdHoareTripleChecker+Invalid, 66 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 61 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 15:07:45,900 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.0s Time] [2022-04-14 15:07:45,900 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-04-14 15:07:45,905 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 34. [2022-04-14 15:07:45,905 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:07:45,905 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-14 15:07:45,906 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-14 15:07:45,906 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-14 15:07:45,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,907 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-14 15:07:45,908 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-14 15:07:45,908 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:45,908 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:45,908 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-14 15:07:45,908 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-14 15:07:45,910 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:45,910 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-14 15:07:45,910 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-14 15:07:45,910 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:45,910 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:45,910 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:07:45,910 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:07:45,911 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-14 15:07:45,912 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 37 transitions. [2022-04-14 15:07:45,912 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 37 transitions. Word has length 23 [2022-04-14 15:07:45,912 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:07:45,912 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 37 transitions. [2022-04-14 15:07:45,912 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-14 15:07:45,912 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 37 transitions. [2022-04-14 15:07:45,913 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-14 15:07:45,913 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:07:45,913 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-14 15:07:45,933 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-04-14 15:07:46,124 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-14 15:07:46,124 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:07:46,125 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:07:46,125 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 1 times [2022-04-14 15:07:46,125 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:07:46,125 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [400223376] [2022-04-14 15:07:46,125 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:46,125 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:07:46,140 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:07:46,140 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1198700862] [2022-04-14 15:07:46,140 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:46,140 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:07:46,140 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:07:46,141 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-14 15:07:46,142 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-14 15:07:46,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:46,178 INFO L263 TraceCheckSpWp]: Trace formula consists of 103 conjuncts, 17 conjunts are in the unsatisfiable core [2022-04-14 15:07:46,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:46,190 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:07:46,371 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-14 15:07:46,372 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-14 15:07:46,372 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,372 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-14 15:07:46,372 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-14 15:07:46,372 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-14 15:07:46,372 INFO L272 TraceCheckUtils]: 6: Hoare triple {467#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {467#true} is VALID [2022-04-14 15:07:46,372 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,372 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,372 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,373 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-14 15:07:46,373 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-14 15:07:46,373 INFO L272 TraceCheckUtils]: 12: Hoare triple {467#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {467#true} is VALID [2022-04-14 15:07:46,373 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,373 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,373 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,373 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-14 15:07:46,374 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-14 15:07:46,374 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-14 15:07:46,374 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-14 15:07:46,374 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,374 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,375 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,375 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-14 15:07:46,376 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-14 15:07:46,376 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-14 15:07:46,377 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-14 15:07:46,377 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-14 15:07:46,378 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-14 15:07:46,378 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:46,379 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-14 15:07:46,379 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-14 15:07:46,379 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-14 15:07:46,379 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:07:46,543 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-14 15:07:46,543 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-14 15:07:46,544 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:46,545 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-14 15:07:46,545 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-14 15:07:46,546 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-14 15:07:46,547 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-14 15:07:46,547 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-14 15:07:46,548 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-14 15:07:46,548 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,548 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,548 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,549 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-14 15:07:46,549 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-14 15:07:46,551 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-14 15:07:46,551 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-14 15:07:46,551 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,552 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,552 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,552 INFO L272 TraceCheckUtils]: 12: Hoare triple {467#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {467#true} is VALID [2022-04-14 15:07:46,552 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-14 15:07:46,552 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-14 15:07:46,552 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,552 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-14 15:07:46,552 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-14 15:07:46,552 INFO L272 TraceCheckUtils]: 6: Hoare triple {467#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {467#true} is VALID [2022-04-14 15:07:46,552 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-14 15:07:46,553 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-14 15:07:46,553 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-14 15:07:46,553 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-14 15:07:46,553 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-14 15:07:46,553 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-14 15:07:46,553 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-14 15:07:46,553 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:07:46,553 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [400223376] [2022-04-14 15:07:46,553 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:07:46,553 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1198700862] [2022-04-14 15:07:46,554 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1198700862] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:07:46,554 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:07:46,554 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7] total 11 [2022-04-14 15:07:46,554 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1885216887] [2022-04-14 15:07:46,554 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:07:46,554 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-14 15:07:46,555 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:07:46,555 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-14 15:07:46,592 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-14 15:07:46,593 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-14 15:07:46,593 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:07:46,593 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-14 15:07:46,593 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=23, Invalid=87, Unknown=0, NotChecked=0, Total=110 [2022-04-14 15:07:46,593 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-14 15:07:47,142 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:47,143 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2022-04-14 15:07:47,143 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-14 15:07:47,143 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-14 15:07:47,143 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:07:47,143 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-14 15:07:47,145 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-14 15:07:47,145 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-14 15:07:47,146 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-14 15:07:47,146 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 51 transitions. [2022-04-14 15:07:47,187 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-14 15:07:47,189 INFO L225 Difference]: With dead ends: 48 [2022-04-14 15:07:47,189 INFO L226 Difference]: Without dead ends: 42 [2022-04-14 15:07:47,189 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-14 15:07:47,190 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-14 15:07:47,190 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-14 15:07:47,190 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2022-04-14 15:07:47,195 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 41. [2022-04-14 15:07:47,195 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:07:47,195 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-14 15:07:47,196 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-14 15:07:47,196 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-14 15:07:47,197 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:47,197 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-14 15:07:47,197 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-14 15:07:47,198 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:47,198 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:47,198 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-14 15:07:47,198 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-14 15:07:47,199 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:47,199 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-14 15:07:47,200 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-14 15:07:47,200 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:47,200 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:47,200 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:07:47,200 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:07:47,200 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-14 15:07:47,201 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-14 15:07:47,201 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 32 [2022-04-14 15:07:47,202 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:07:47,202 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-14 15:07:47,202 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-14 15:07:47,202 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-14 15:07:47,202 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-14 15:07:47,203 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:07:47,203 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-14 15:07:47,220 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-14 15:07:47,415 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-14 15:07:47,415 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:07:47,416 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:07:47,416 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 1 times [2022-04-14 15:07:47,416 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:07:47,416 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [419756849] [2022-04-14 15:07:47,416 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:47,416 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:07:47,429 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:07:47,429 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1391034205] [2022-04-14 15:07:47,429 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:47,429 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:07:47,429 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:07:47,439 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-14 15:07:47,440 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-14 15:07:47,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:47,474 INFO L263 TraceCheckSpWp]: Trace formula consists of 119 conjuncts, 26 conjunts are in the unsatisfiable core [2022-04-14 15:07:47,483 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:47,484 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:07:47,842 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-14 15:07:47,842 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-14 15:07:47,842 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:47,842 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-14 15:07:47,847 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-14 15:07:47,847 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-14 15:07:47,847 INFO L272 TraceCheckUtils]: 6: Hoare triple {885#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {885#true} is VALID [2022-04-14 15:07:47,847 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:47,847 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:47,847 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:47,847 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-14 15:07:47,848 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-14 15:07:47,848 INFO L272 TraceCheckUtils]: 12: Hoare triple {885#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {885#true} is VALID [2022-04-14 15:07:47,848 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:47,848 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:47,848 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:47,848 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-14 15:07:47,849 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-14 15:07:47,849 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-14 15:07:47,849 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-14 15:07:47,849 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:47,849 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:47,849 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:47,850 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-14 15:07:47,850 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-14 15:07:47,859 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-14 15:07:47,859 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-14 15:07:47,860 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-14 15:07:47,860 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-14 15:07:47,860 INFO L290 TraceCheckUtils]: 29: Hoare triple {885#true} ~cond := #in~cond; {982#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:47,861 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-14 15:07:47,861 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-14 15:07:47,862 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-14 15:07:47,863 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-14 15:07:47,864 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-14 15:07:47,865 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-14 15:07:47,865 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:47,865 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-14 15:07:47,865 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-14 15:07:47,866 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-14 15:07:47,866 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:07:48,479 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-14 15:07:48,480 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-14 15:07:48,480 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:07:48,481 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-14 15:07:48,482 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-14 15:07:48,482 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-14 15:07:48,483 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-14 15:07:48,483 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-14 15:07:48,484 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-14 15:07:48,484 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-14 15:07:48,484 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-14 15:07:48,485 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-14 15:07:48,486 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-14 15:07:48,488 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-14 15:07:48,489 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-14 15:07:48,489 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {885#true} {885#true} #65#return; {885#true} is VALID [2022-04-14 15:07:48,489 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:48,489 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:48,489 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:48,490 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-14 15:07:48,490 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-14 15:07:48,490 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-14 15:07:48,490 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:48,490 INFO L272 TraceCheckUtils]: 12: Hoare triple {885#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {885#true} is VALID [2022-04-14 15:07:48,490 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-14 15:07:48,490 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-14 15:07:48,490 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-14 15:07:48,491 INFO L272 TraceCheckUtils]: 6: Hoare triple {885#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {885#true} is VALID [2022-04-14 15:07:48,491 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-14 15:07:48,491 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-14 15:07:48,491 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-14 15:07:48,491 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-14 15:07:48,491 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-14 15:07:48,491 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-14 15:07:48,491 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-14 15:07:48,491 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:07:48,491 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [419756849] [2022-04-14 15:07:48,492 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:07:48,492 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1391034205] [2022-04-14 15:07:48,492 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1391034205] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:07:48,492 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:07:48,492 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 22 [2022-04-14 15:07:48,492 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [81886234] [2022-04-14 15:07:48,492 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:07:48,493 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-14 15:07:48,493 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:07:48,493 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-14 15:07:48,538 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-14 15:07:48,538 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-04-14 15:07:48,538 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:07:48,539 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-04-14 15:07:48,540 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=389, Unknown=0, NotChecked=0, Total=462 [2022-04-14 15:07:48,540 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-14 15:07:49,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:49,496 INFO L93 Difference]: Finished difference Result 60 states and 68 transitions. [2022-04-14 15:07:49,496 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-14 15:07:49,496 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-14 15:07:49,496 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:07:49,496 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-14 15:07:49,498 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-14 15:07:49,498 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-14 15:07:49,499 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-14 15:07:49,499 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 62 transitions. [2022-04-14 15:07:49,559 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-14 15:07:49,560 INFO L225 Difference]: With dead ends: 60 [2022-04-14 15:07:49,560 INFO L226 Difference]: Without dead ends: 52 [2022-04-14 15:07:49,561 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 93 GetRequests, 57 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 261 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=220, Invalid=1112, Unknown=0, NotChecked=0, Total=1332 [2022-04-14 15:07:49,562 INFO L913 BasicCegarLoop]: 20 mSDtfsCounter, 28 mSDsluCounter, 202 mSDsCounter, 0 mSdLazyCounter, 254 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-14 15:07:49,562 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.2s Time] [2022-04-14 15:07:49,562 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-14 15:07:49,570 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 41. [2022-04-14 15:07:49,570 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:07:49,570 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-14 15:07:49,570 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-14 15:07:49,570 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-14 15:07:49,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:49,572 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-14 15:07:49,572 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-14 15:07:49,573 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:49,573 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:49,573 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-14 15:07:49,573 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-14 15:07:49,574 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:07:49,574 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-14 15:07:49,575 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-14 15:07:49,575 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:07:49,575 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:07:49,575 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:07:49,575 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:07:49,575 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-14 15:07:49,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-14 15:07:49,576 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 39 [2022-04-14 15:07:49,577 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:07:49,577 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-14 15:07:49,577 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-14 15:07:49,577 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-14 15:07:49,577 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-14 15:07:49,578 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:07:49,578 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-14 15:07:49,596 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-14 15:07:49,791 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-14 15:07:49,791 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:07:49,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:07:49,792 INFO L85 PathProgramCache]: Analyzing trace with hash 1662296326, now seen corresponding path program 1 times [2022-04-14 15:07:49,792 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:07:49,792 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [816995212] [2022-04-14 15:07:49,792 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:49,792 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:07:49,808 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:07:49,808 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [881865689] [2022-04-14 15:07:49,808 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:07:49,808 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:07:49,808 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:07:49,809 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-14 15:07:49,810 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-14 15:07:49,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:49,850 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 23 conjunts are in the unsatisfiable core [2022-04-14 15:07:49,861 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:07:49,862 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:08:02,917 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:08:09,024 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:08:26,903 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-14 15:08:26,904 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-14 15:08:26,904 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-14 15:08:26,904 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-14 15:08:26,904 INFO L272 TraceCheckUtils]: 6: Hoare triple {1417#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-14 15:08:26,904 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-14 15:08:26,904 INFO L272 TraceCheckUtils]: 12: Hoare triple {1417#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {1417#true} is VALID [2022-04-14 15:08:26,904 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:26,905 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:26,905 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:26,905 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-14 15:08:26,905 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-14 15:08:26,905 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-14 15:08:26,905 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-14 15:08:26,905 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:26,906 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:26,906 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:26,906 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-14 15:08:26,907 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-14 15:08:26,907 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-14 15:08:26,907 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-14 15:08:26,907 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-14 15:08:26,907 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-14 15:08:26,908 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:08:26,908 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-14 15:08:26,908 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-14 15:08:26,909 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-14 15:08:26,909 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-14 15:08:26,909 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-14 15:08:26,910 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-14 15:08:26,910 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-14 15:08:26,910 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-14 15:08:26,910 INFO L290 TraceCheckUtils]: 38: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:08:26,911 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-14 15:08:26,911 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-14 15:08:26,912 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-14 15:08:26,913 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-14 15:08:28,915 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-14 15:08:28,918 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-14 15:08:28,919 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:08:28,919 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-14 15:08:28,919 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-14 15:08:28,919 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-14 15:08:28,919 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:08:42,162 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-14 15:08:42,163 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-14 15:08:42,179 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:08:42,180 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-14 15:08:42,181 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-14 15:08:42,182 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-14 15:08:42,185 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-14 15:08:42,186 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-14 15:08:42,199 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-14 15:08:42,199 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-14 15:08:42,199 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-14 15:08:42,200 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-14 15:08:42,200 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-14 15:08:42,200 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-14 15:08:42,201 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-14 15:08:42,201 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-14 15:08:42,201 INFO L290 TraceCheckUtils]: 31: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:42,201 INFO L290 TraceCheckUtils]: 30: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:42,201 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:42,202 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-14 15:08:42,202 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-14 15:08:42,202 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-14 15:08:42,202 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-14 15:08:42,203 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-14 15:08:42,203 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-14 15:08:42,203 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:42,203 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:42,203 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:42,203 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-14 15:08:42,204 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-14 15:08:42,204 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-14 15:08:42,204 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-14 15:08:42,204 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:42,205 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:42,205 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:42,205 INFO L272 TraceCheckUtils]: 12: Hoare triple {1417#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {1417#true} is VALID [2022-04-14 15:08:42,205 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-14 15:08:42,206 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-14 15:08:42,206 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:42,206 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-14 15:08:42,206 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-14 15:08:42,206 INFO L272 TraceCheckUtils]: 6: Hoare triple {1417#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {1417#true} is VALID [2022-04-14 15:08:42,206 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-14 15:08:42,207 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-14 15:08:42,207 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-14 15:08:42,207 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-14 15:08:42,207 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-14 15:08:42,207 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-14 15:08:42,209 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-14 15:08:42,209 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:08:42,209 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [816995212] [2022-04-14 15:08:42,209 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:08:42,209 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [881865689] [2022-04-14 15:08:42,209 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [881865689] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:08:42,209 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:08:42,209 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 14 [2022-04-14 15:08:42,209 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1925164538] [2022-04-14 15:08:42,210 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:08:42,219 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-14 15:08:42,221 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:08:42,221 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-14 15:08:44,252 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-14 15:08:44,253 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-14 15:08:44,253 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:08:44,253 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-14 15:08:44,253 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=146, Unknown=1, NotChecked=0, Total=182 [2022-04-14 15:08:44,253 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-14 15:08:46,498 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-14 15:08:50,601 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-14 15:08:52,616 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-14 15:08:54,626 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-14 15:08:56,641 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-14 15:08:58,806 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-14 15:09:00,847 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-14 15:09:03,372 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:03,373 INFO L93 Difference]: Finished difference Result 56 states and 63 transitions. [2022-04-14 15:09:03,373 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-14 15:09:03,373 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-14 15:09:03,373 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:09:03,373 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-14 15:09:03,374 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-14 15:09:03,374 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-14 15:09:03,375 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-14 15:09:03,375 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 48 transitions. [2022-04-14 15:09:05,414 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-14 15:09:05,415 INFO L225 Difference]: With dead ends: 56 [2022-04-14 15:09:05,415 INFO L226 Difference]: Without dead ends: 50 [2022-04-14 15:09:05,415 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 81 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 50 ImplicationChecksByTransitivity, 6.5s TimeCoverageRelationStatistics Valid=66, Invalid=237, Unknown=3, NotChecked=0, Total=306 [2022-04-14 15:09:05,416 INFO L913 BasicCegarLoop]: 19 mSDtfsCounter, 25 mSDsluCounter, 114 mSDsCounter, 0 mSdLazyCounter, 142 mSolverCounterSat, 13 mSolverCounterUnsat, 7 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 14.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 26 SdHoareTripleChecker+Valid, 133 SdHoareTripleChecker+Invalid, 162 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 142 IncrementalHoareTripleChecker+Invalid, 7 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 14.3s IncrementalHoareTripleChecker+Time [2022-04-14 15:09:05,416 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [26 Valid, 133 Invalid, 162 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 142 Invalid, 7 Unknown, 0 Unchecked, 14.3s Time] [2022-04-14 15:09:05,416 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2022-04-14 15:09:05,425 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 44. [2022-04-14 15:09:05,425 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:09:05,425 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-14 15:09:05,426 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-14 15:09:05,426 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-14 15:09:05,427 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:05,427 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-14 15:09:05,427 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-14 15:09:05,428 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:05,428 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:05,428 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-14 15:09:05,428 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-14 15:09:05,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:05,429 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-14 15:09:05,429 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-14 15:09:05,430 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:05,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:05,430 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:09:05,430 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:09:05,430 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-14 15:09:05,435 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2022-04-14 15:09:05,435 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 48 [2022-04-14 15:09:05,435 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:09:05,435 INFO L478 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2022-04-14 15:09:05,436 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-14 15:09:05,436 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-14 15:09:05,437 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-14 15:09:05,437 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:09:05,437 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-14 15:09:05,453 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Ended with exit code 0 [2022-04-14 15:09:05,637 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-14 15:09:05,638 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:09:05,638 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:09:05,638 INFO L85 PathProgramCache]: Analyzing trace with hash -143142008, now seen corresponding path program 1 times [2022-04-14 15:09:05,638 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:09:05,638 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [9790591] [2022-04-14 15:09:05,638 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:09:05,638 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:09:05,653 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:09:05,653 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1535945998] [2022-04-14 15:09:05,653 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:09:05,653 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:09:05,653 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:09:05,656 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-14 15:09:05,658 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-14 15:09:05,706 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:09:05,707 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-14 15:09:05,723 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:09:05,724 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:09:08,587 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-14 15:09:08,587 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-14 15:09:08,588 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-14 15:09:08,588 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-14 15:09:08,588 INFO L272 TraceCheckUtils]: 6: Hoare triple {1968#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-14 15:09:08,588 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-14 15:09:08,588 INFO L272 TraceCheckUtils]: 12: Hoare triple {1968#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,588 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-14 15:09:08,589 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-14 15:09:08,589 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-14 15:09:08,589 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-14 15:09:08,589 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,590 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,590 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,590 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-14 15:09:08,591 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-14 15:09:08,592 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-14 15:09:08,592 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-14 15:09:08,593 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-14 15:09:08,593 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-14 15:09:08,593 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,593 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,593 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,594 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-14 15:09:08,594 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-14 15:09:08,595 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-14 15:09:08,596 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-14 15:09:08,596 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-14 15:09:08,596 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-14 15:09:08,596 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,596 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,596 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,597 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-14 15:09:08,598 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-14 15:09:08,598 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-14 15:09:08,598 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-14 15:09:08,598 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-14 15:09:08,598 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-14 15:09:08,598 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-14 15:09:08,598 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-14 15:09:08,598 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:09:08,940 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-14 15:09:08,941 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-14 15:09:08,941 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-14 15:09:08,941 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-14 15:09:08,941 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-14 15:09:08,941 INFO L290 TraceCheckUtils]: 42: Hoare triple {2134#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {1969#false} is VALID [2022-04-14 15:09:08,942 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-14 15:09:08,942 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,942 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,942 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,942 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-14 15:09:08,942 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-14 15:09:08,943 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-14 15:09:08,943 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-14 15:09:08,944 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-14 15:09:08,944 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-14 15:09:08,944 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,944 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,944 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,944 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-14 15:09:08,945 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-14 15:09:08,945 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-14 15:09:08,946 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-14 15:09:08,947 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-14 15:09:08,947 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-14 15:09:08,947 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,948 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,948 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,948 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-14 15:09:08,949 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-14 15:09:08,950 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-14 15:09:08,952 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L272 TraceCheckUtils]: 12: Hoare triple {1968#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {1968#true} is VALID [2022-04-14 15:09:08,952 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-14 15:09:08,952 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-14 15:09:08,952 INFO L272 TraceCheckUtils]: 6: Hoare triple {1968#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {1968#true} is VALID [2022-04-14 15:09:08,952 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-14 15:09:08,953 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-14 15:09:08,953 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-14 15:09:08,953 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-14 15:09:08,953 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-14 15:09:08,953 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-14 15:09:08,953 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-14 15:09:08,953 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:09:08,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [9790591] [2022-04-14 15:09:08,953 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:09:08,953 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1535945998] [2022-04-14 15:09:08,953 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1535945998] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:09:08,953 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:09:08,953 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2022-04-14 15:09:08,953 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [413315523] [2022-04-14 15:09:08,954 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:09:08,954 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-14 15:09:08,954 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:09:08,954 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-14 15:09:08,991 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-14 15:09:08,991 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-14 15:09:08,991 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:09:08,991 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-14 15:09:08,991 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2022-04-14 15:09:08,992 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-14 15:09:09,360 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:09,360 INFO L93 Difference]: Finished difference Result 65 states and 75 transitions. [2022-04-14 15:09:09,360 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-14 15:09:09,360 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-14 15:09:09,360 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:09:09,361 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-14 15:09:09,362 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-14 15:09:09,362 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-14 15:09:09,363 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-14 15:09:09,363 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 58 transitions. [2022-04-14 15:09:09,407 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-14 15:09:09,408 INFO L225 Difference]: With dead ends: 65 [2022-04-14 15:09:09,408 INFO L226 Difference]: Without dead ends: 59 [2022-04-14 15:09:09,408 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 85 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=59, Invalid=181, Unknown=0, NotChecked=0, Total=240 [2022-04-14 15:09:09,408 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 5 mSDsluCounter, 68 mSDsCounter, 0 mSdLazyCounter, 116 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s 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.1s IncrementalHoareTripleChecker+Time [2022-04-14 15:09:09,409 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.1s Time] [2022-04-14 15:09:09,409 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-04-14 15:09:09,424 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 51. [2022-04-14 15:09:09,425 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:09:09,425 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-14 15:09:09,425 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-14 15:09:09,425 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-14 15:09:09,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:09,427 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-14 15:09:09,427 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-14 15:09:09,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:09,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:09,427 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-14 15:09:09,427 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-14 15:09:09,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:09,429 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-14 15:09:09,429 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-14 15:09:09,429 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:09,429 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:09,429 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:09:09,429 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:09:09,429 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-14 15:09:09,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 59 transitions. [2022-04-14 15:09:09,430 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 59 transitions. Word has length 48 [2022-04-14 15:09:09,430 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:09:09,430 INFO L478 AbstractCegarLoop]: Abstraction has 51 states and 59 transitions. [2022-04-14 15:09:09,431 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-14 15:09:09,431 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 59 transitions. [2022-04-14 15:09:09,431 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-14 15:09:09,431 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:09:09,431 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-14 15:09:09,449 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Ended with exit code 0 [2022-04-14 15:09:09,649 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-14 15:09:09,649 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:09:09,649 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:09:09,649 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 2 times [2022-04-14 15:09:09,649 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:09:09,649 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1880060821] [2022-04-14 15:09:09,649 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:09:09,649 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:09:09,659 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:09:09,660 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [196680522] [2022-04-14 15:09:09,660 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-14 15:09:09,660 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:09:09,660 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:09:09,660 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-14 15:09:09,661 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-14 15:09:09,698 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-14 15:09:09,699 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 15:09:09,699 INFO L263 TraceCheckSpWp]: Trace formula consists of 157 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-14 15:09:09,708 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:09:09,709 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:09:10,736 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-14 15:09:10,736 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-14 15:09:10,736 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,736 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-14 15:09:10,736 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-14 15:09:10,736 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-14 15:09:10,736 INFO L272 TraceCheckUtils]: 6: Hoare triple {2555#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {2555#true} is VALID [2022-04-14 15:09:10,736 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-14 15:09:10,737 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-14 15:09:10,737 INFO L272 TraceCheckUtils]: 12: Hoare triple {2555#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,737 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-14 15:09:10,743 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-14 15:09:10,743 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-14 15:09:10,743 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-14 15:09:10,743 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,743 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,743 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,744 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-14 15:09:10,744 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-14 15:09:10,745 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-14 15:09:10,746 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-14 15:09:10,746 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-14 15:09:10,746 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-14 15:09:10,746 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,746 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,747 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,747 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-14 15:09:10,747 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-14 15:09:10,748 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-14 15:09:10,749 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-14 15:09:10,749 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-14 15:09:10,749 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-14 15:09:10,749 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,749 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,749 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,750 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-14 15:09:10,750 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-14 15:09:10,750 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-14 15:09:10,751 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-14 15:09:10,751 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-14 15:09:10,751 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-14 15:09:10,751 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:10,751 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:10,751 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:10,752 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-14 15:09:10,752 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-14 15:09:10,752 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-14 15:09:10,752 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-14 15:09:10,752 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-14 15:09:10,752 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-14 15:09:10,753 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-14 15:09:10,753 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-14 15:09:10,753 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:09:11,094 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-14 15:09:11,094 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-14 15:09:11,094 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-14 15:09:11,094 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-14 15:09:11,094 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-14 15:09:11,095 INFO L290 TraceCheckUtils]: 51: Hoare triple {2749#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {2556#false} is VALID [2022-04-14 15:09:11,095 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-14 15:09:11,095 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,095 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,095 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,096 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-14 15:09:11,096 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-14 15:09:11,097 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-14 15:09:11,097 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-14 15:09:11,097 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-14 15:09:11,098 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-14 15:09:11,098 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,098 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,098 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,098 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-14 15:09:11,098 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-14 15:09:11,099 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-14 15:09:11,099 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-14 15:09:11,099 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-14 15:09:11,100 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-14 15:09:11,100 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,100 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,100 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,100 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-14 15:09:11,100 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-14 15:09:11,101 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-14 15:09:11,101 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-14 15:09:11,102 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-14 15:09:11,102 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-14 15:09:11,102 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,102 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,103 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,103 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-14 15:09:11,103 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-14 15:09:11,104 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-14 15:09:11,104 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L272 TraceCheckUtils]: 12: Hoare triple {2555#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {2555#true} is VALID [2022-04-14 15:09:11,104 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-14 15:09:11,104 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L272 TraceCheckUtils]: 6: Hoare triple {2555#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {2555#true} is VALID [2022-04-14 15:09:11,104 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-14 15:09:11,104 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-14 15:09:11,104 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-14 15:09:11,104 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-14 15:09:11,104 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-14 15:09:11,105 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-14 15:09:11,105 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:09:11,105 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1880060821] [2022-04-14 15:09:11,105 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:09:11,105 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [196680522] [2022-04-14 15:09:11,105 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [196680522] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:09:11,105 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:09:11,105 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 14 [2022-04-14 15:09:11,105 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1022768814] [2022-04-14 15:09:11,105 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:09:11,106 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-14 15:09:11,106 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:09:11,106 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-14 15:09:11,155 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-14 15:09:11,155 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-14 15:09:11,156 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:09:11,156 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-14 15:09:11,156 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=137, Unknown=0, NotChecked=0, Total=182 [2022-04-14 15:09:11,156 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-14 15:09:11,885 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:11,886 INFO L93 Difference]: Finished difference Result 78 states and 93 transitions. [2022-04-14 15:09:11,886 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-14 15:09:11,886 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-14 15:09:11,886 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:09:11,886 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-14 15:09:11,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-14 15:09:11,888 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-14 15:09:11,889 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-14 15:09:11,889 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 64 transitions. [2022-04-14 15:09:11,934 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-14 15:09:11,935 INFO L225 Difference]: With dead ends: 78 [2022-04-14 15:09:11,935 INFO L226 Difference]: Without dead ends: 72 [2022-04-14 15:09:11,935 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 116 GetRequests, 101 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=64, Invalid=208, Unknown=0, NotChecked=0, Total=272 [2022-04-14 15:09:11,936 INFO L913 BasicCegarLoop]: 32 mSDtfsCounter, 8 mSDsluCounter, 163 mSDsCounter, 0 mSdLazyCounter, 222 mSolverCounterSat, 8 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-14 15:09:11,936 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.2s Time] [2022-04-14 15:09:11,936 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2022-04-14 15:09:11,971 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 56. [2022-04-14 15:09:11,971 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:09:11,971 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-14 15:09:11,971 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-14 15:09:11,972 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-14 15:09:11,973 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:11,973 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-14 15:09:11,973 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-14 15:09:11,974 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:11,974 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:11,974 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-14 15:09:11,974 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-14 15:09:11,976 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:09:11,976 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-14 15:09:11,976 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-14 15:09:11,976 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:09:11,976 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:09:11,976 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:09:11,976 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:09:11,976 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-14 15:09:11,977 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 66 transitions. [2022-04-14 15:09:11,978 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 66 transitions. Word has length 57 [2022-04-14 15:09:11,978 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:09:11,978 INFO L478 AbstractCegarLoop]: Abstraction has 56 states and 66 transitions. [2022-04-14 15:09:11,978 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-14 15:09:11,978 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 66 transitions. [2022-04-14 15:09:11,978 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-14 15:09:11,978 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 15:09:11,979 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-14 15:09:12,007 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-04-14 15:09:12,191 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-14 15:09:12,191 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 15:09:12,192 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 15:09:12,192 INFO L85 PathProgramCache]: Analyzing trace with hash 2136090540, now seen corresponding path program 3 times [2022-04-14 15:09:12,192 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 15:09:12,192 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1766591417] [2022-04-14 15:09:12,192 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 15:09:12,192 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 15:09:12,213 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 15:09:12,214 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1567642635] [2022-04-14 15:09:12,214 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-14 15:09:12,214 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 15:09:12,214 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 15:09:12,215 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-14 15:09:12,216 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-14 15:09:12,546 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2022-04-14 15:09:12,546 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 15:09:12,548 INFO L263 TraceCheckSpWp]: Trace formula consists of 117 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-14 15:09:12,572 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 15:09:12,573 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 15:09:30,408 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:09:35,952 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:09:37,845 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:10:10,405 WARN L232 SmtUtils]: Spent 13.23s on a formula simplification that was a NOOP. DAG size: 56 (called from [L 360] de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate) [2022-04-14 15:11:06,716 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-14 15:11:06,716 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-14 15:11:06,716 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:11:06,716 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-14 15:11:06,716 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-14 15:11:06,716 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-14 15:11:06,716 INFO L272 TraceCheckUtils]: 6: Hoare triple {3248#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {3248#true} is VALID [2022-04-14 15:11:06,716 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-14 15:11:06,717 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-14 15:11:06,717 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-14 15:11:06,717 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} {3248#true} #61#return; {3285#(and (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,718 INFO L290 TraceCheckUtils]: 11: Hoare triple {3285#(and (<= 0 main_~X~0) (<= main_~X~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3285#(and (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,718 INFO L272 TraceCheckUtils]: 12: Hoare triple {3285#(and (<= 0 main_~X~0) (<= main_~X~0 50))} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {3248#true} is VALID [2022-04-14 15:11:06,718 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-14 15:11:06,718 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-14 15:11:06,719 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-14 15:11:06,719 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} {3285#(and (<= 0 main_~X~0) (<= main_~X~0 50))} #63#return; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,719 INFO L290 TraceCheckUtils]: 17: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,720 INFO L290 TraceCheckUtils]: 18: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,720 INFO L272 TraceCheckUtils]: 19: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} 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-14 15:11:06,720 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:11:06,720 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:11:06,720 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:11:06,720 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3248#true} {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #65#return; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,721 INFO L290 TraceCheckUtils]: 24: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !!(~x~0 <= ~X~0); {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,721 INFO L290 TraceCheckUtils]: 25: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} 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_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,721 INFO L290 TraceCheckUtils]: 26: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,722 INFO L290 TraceCheckUtils]: 27: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,722 INFO L272 TraceCheckUtils]: 28: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} 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-14 15:11:06,722 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:11:06,722 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:11:06,722 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:11:06,723 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3248#true} {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #65#return; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,723 INFO L290 TraceCheckUtils]: 33: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !!(~x~0 <= ~X~0); {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,723 INFO L290 TraceCheckUtils]: 34: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,724 INFO L290 TraceCheckUtils]: 35: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,724 INFO L290 TraceCheckUtils]: 36: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,724 INFO L272 TraceCheckUtils]: 37: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} 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-14 15:11:06,724 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:11:06,724 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:11:06,724 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:11:06,725 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {3248#true} {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #65#return; {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,725 INFO L290 TraceCheckUtils]: 42: Hoare triple {3304#(and (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume !!(~x~0 <= ~X~0); {3383#(and (<= main_~x~0 main_~X~0) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,726 INFO L290 TraceCheckUtils]: 43: Hoare triple {3383#(and (<= main_~x~0 main_~X~0) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3387#(and (<= main_~x~0 main_~X~0) (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} is VALID [2022-04-14 15:11:06,727 INFO L290 TraceCheckUtils]: 44: Hoare triple {3387#(and (<= main_~x~0 main_~X~0) (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3391#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-14 15:11:06,727 INFO L290 TraceCheckUtils]: 45: Hoare triple {3391#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3395#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (= (* 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-14 15:11:06,727 INFO L272 TraceCheckUtils]: 46: Hoare triple {3395#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (= (* 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-14 15:11:06,728 INFO L290 TraceCheckUtils]: 47: Hoare triple {3248#true} ~cond := #in~cond; {3402#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:11:06,741 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-14 15:11:06,742 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-14 15:11:06,744 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} {3395#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (= (* 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_~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)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-14 15:11:06,744 INFO L290 TraceCheckUtils]: 51: Hoare triple {3413#(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_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {3417#(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_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-14 15:11:07,048 INFO L290 TraceCheckUtils]: 52: Hoare triple {3417#(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_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (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_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (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-14 15:11:07,057 INFO L272 TraceCheckUtils]: 53: Hoare triple {3421#(and (< main_~v~0 (* main_~Y~0 2)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (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-14 15:11:07,057 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:11:07,057 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-14 15:11:07,057 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-14 15:11:07,058 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-14 15:11:07,058 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 15:11:14,911 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:11:21,879 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 15:12:15,027 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-14 15:12:15,028 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-14 15:12:15,028 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 15:12:15,029 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-14 15:12:15,030 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-14 15:12:15,030 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-14 15:12:15,031 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-14 15:12:15,031 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-14 15:12:15,032 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-14 15:12:15,032 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-14 15:12:15,032 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-14 15:12:17,038 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-14 15:12:17,050 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-14 15:12:19,054 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))) (and (or (forall ((aux_div_v_main_~v~0_36_40 Int) (aux_div_aux_mod_v_main_~v~0_36_40_72 Int)) (or (= (+ (* aux_div_aux_mod_v_main_~v~0_36_40_72 2) (* (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 aux_div_v_main_~v~0_36_40) main_~X~0)) 2)) (+ (* 2 aux_div_v_main_~v~0_36_40) (* main_~Y~0 2) (* 2 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 aux_div_v_main_~v~0_36_40) main_~X~0)))) (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* aux_div_aux_mod_v_main_~v~0_36_40_72 2) (* v_main_~x~0_30 main_~Y~0 2) (* (- 2) aux_div_v_main_~v~0_36_40)) (- 2))) main_~X~0) 0)) (< (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2)) 0) (<= 2 (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2))) (<= (+ main_~X~0 (* 2 aux_div_v_main_~v~0_36_40) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2))))) (= main_~X~0 0)) (or (not (= main_~X~0 0)) (<= main_~X~0 (* (* v_main_~x~0_30 main_~Y~0) 2)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_30 main_~y~0)) (* main_~Y~0 2)) (+ (* main_~y~0 2) (* main_~Y~0 2)))))) (<= v_main_~x~0_30 main_~X~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-14 15:12:20,363 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))) (and (or (forall ((aux_div_v_main_~v~0_36_40 Int) (aux_div_aux_mod_v_main_~v~0_36_40_72 Int)) (or (= (+ (* aux_div_aux_mod_v_main_~v~0_36_40_72 2) (* (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 aux_div_v_main_~v~0_36_40) main_~X~0)) 2)) (+ (* 2 aux_div_v_main_~v~0_36_40) (* main_~Y~0 2) (* 2 (div (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 aux_div_v_main_~v~0_36_40) main_~X~0)))) (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) main_~Y~0 (div (+ (* aux_div_aux_mod_v_main_~v~0_36_40_72 2) (* v_main_~x~0_30 main_~Y~0 2) (* (- 2) aux_div_v_main_~v~0_36_40)) (- 2))) main_~X~0) 0)) (< (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2)) 0) (<= 2 (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2))) (<= (+ main_~X~0 (* 2 aux_div_v_main_~v~0_36_40) (* main_~Y~0 2)) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* aux_div_aux_mod_v_main_~v~0_36_40_72 2))))) (= main_~X~0 0)) (or (not (= main_~X~0 0)) (<= main_~X~0 (* (* v_main_~x~0_30 main_~Y~0) 2)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_30 main_~y~0)) (* main_~Y~0 2)) (+ (* main_~y~0 2) (* main_~Y~0 2)))))) (<= v_main_~x~0_30 main_~X~0)))} is VALID [2022-04-14 15:12:20,363 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:12:20,363 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-14 15:12:20,363 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-14 15:12:20,363 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-14 15:12:20,363 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-14 15:12:20,363 INFO L290 TraceCheckUtils]: 33: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,363 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:12:20,364 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-14 15:12:20,364 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-14 15:12:20,364 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-14 15:12:20,364 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-14 15:12:20,364 INFO L290 TraceCheckUtils]: 24: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:12:20,364 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-14 15:12:20,364 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-14 15:12:20,364 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-14 15:12:20,364 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3248#true} {3248#true} #63#return; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 15: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 14: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 13: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L272 TraceCheckUtils]: 12: Hoare triple {3248#true} call assume_abort_if_not((if ~Y~0 >= 0 && ~Y~0 <= 50 then 1 else 0)); {3248#true} is VALID [2022-04-14 15:12:20,364 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-14 15:12:20,364 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3248#true} {3248#true} #61#return; {3248#true} is VALID [2022-04-14 15:12:20,364 INFO L290 TraceCheckUtils]: 9: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,365 INFO L290 TraceCheckUtils]: 8: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-14 15:12:20,365 INFO L290 TraceCheckUtils]: 7: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-14 15:12:20,365 INFO L272 TraceCheckUtils]: 6: Hoare triple {3248#true} call assume_abort_if_not((if ~X~0 >= 0 && ~X~0 <= 50 then 1 else 0)); {3248#true} is VALID [2022-04-14 15:12:20,365 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-14 15:12:20,365 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-14 15:12:20,365 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-14 15:12:20,365 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-14 15:12:20,365 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-14 15:12:20,365 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-14 15:12:20,365 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-14 15:12:20,365 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 15:12:20,365 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1766591417] [2022-04-14 15:12:20,365 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 15:12:20,365 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1567642635] [2022-04-14 15:12:20,366 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1567642635] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 15:12:20,366 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 15:12:20,366 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 13] total 25 [2022-04-14 15:12:20,366 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [496142084] [2022-04-14 15:12:20,366 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 15:12:20,366 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-14 15:12:20,367 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 15:12:20,367 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-14 15:12:26,581 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-14 15:12:26,581 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 25 states [2022-04-14 15:12:26,581 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 15:12:26,581 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2022-04-14 15:12:26,582 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=492, Unknown=10, NotChecked=0, Total=600 [2022-04-14 15:12:26,582 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-14 15:12:31,940 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-14 15:12:38,933 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.19s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 15:12:44,633 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-14 15:12:49,487 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-14 15:13:01,484 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-14 15:13:05,479 WARN L833 $PredicateComparison]: unable to prove that (let ((.cse8 (* 2 c_main_~Y~0)) (.cse7 (* c_main_~X~0 c_main_~y~0)) (.cse3 (+ c_main_~X~0 1))) (and (let ((.cse2 (+ (* (- 1) c_main_~Y~0) (div (+ c_main_~v~0 c_main_~X~0) 2) .cse7)) (.cse0 (= c_main_~Y~0 0)) (.cse4 (= (mod (+ (* 2 c_main_~X~0 c_main_~y~0) c_main_~v~0 c_main_~X~0) 2) 0))) (or (let ((.cse1 (div .cse2 c_main_~Y~0))) (and (not .cse0) (not (<= .cse1 c_main_~X~0)) (= (mod .cse2 c_main_~Y~0) 0) (= c_main_~xy~0 (* c_main_~y~0 .cse1)) (<= .cse1 .cse3) (= c_main_~yx~0 (* c_main_~Y~0 .cse1)) .cse4)) (and (let ((.cse6 (= c_main_~y~0 0))) (or (let ((.cse5 (div c_main_~xy~0 c_main_~y~0))) (and (<= .cse5 .cse3) (= (mod c_main_~xy~0 c_main_~y~0) 0) (not .cse6) (< c_main_~X~0 .cse5))) (and .cse6 (= c_main_~xy~0 0)))) (= 0 .cse2) .cse0 (= c_main_~yx~0 0) .cse4))) (<= 0 c_main_~X~0) (<= c_main_~X~0 50) (not (<= c_main_~x~0 c_main_~X~0)) (< c_main_~v~0 .cse8) (<= c_main_~Y~0 50) (<= 0 c_main_~Y~0) (= (+ (* 2 (* c_main_~Y~0 c_main_~x~0)) .cse8) (+ (* 2 .cse7) c_main_~v~0 c_main_~X~0)) (<= c_main_~x~0 .cse3))) is different from false [2022-04-14 15:13:05,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:13:05,653 INFO L93 Difference]: Finished difference Result 62 states and 74 transitions. [2022-04-14 15:13:05,653 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2022-04-14 15:13:05,653 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-14 15:13:05,653 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 15:13:05,653 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-14 15:13:05,654 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-14 15:13:05,654 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-14 15:13:05,655 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-14 15:13:05,655 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 23 states and 45 transitions. [2022-04-14 15:13:10,548 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 43 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-14 15:13:10,548 INFO L225 Difference]: With dead ends: 62 [2022-04-14 15:13:10,548 INFO L226 Difference]: Without dead ends: 0 [2022-04-14 15:13:10,549 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 90 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 267 ImplicationChecksByTransitivity, 75.0s TimeCoverageRelationStatistics Valid=228, Invalid=1025, Unknown=11, NotChecked=68, Total=1332 [2022-04-14 15:13:10,549 INFO L913 BasicCegarLoop]: 15 mSDtfsCounter, 33 mSDsluCounter, 153 mSDsCounter, 0 mSdLazyCounter, 315 mSolverCounterSat, 15 mSolverCounterUnsat, 4 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 10.7s Time, 0 mProtectedPredicate, 0 mProtectedAction, 35 SdHoareTripleChecker+Valid, 168 SdHoareTripleChecker+Invalid, 383 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 15 IncrementalHoareTripleChecker+Valid, 315 IncrementalHoareTripleChecker+Invalid, 4 IncrementalHoareTripleChecker+Unknown, 49 IncrementalHoareTripleChecker+Unchecked, 10.7s IncrementalHoareTripleChecker+Time [2022-04-14 15:13:10,549 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [35 Valid, 168 Invalid, 383 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [15 Valid, 315 Invalid, 4 Unknown, 49 Unchecked, 10.7s Time] [2022-04-14 15:13:10,549 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-04-14 15:13:10,550 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-04-14 15:13:10,550 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 15:13:10,550 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-14 15:13:10,550 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-14 15:13:10,550 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-14 15:13:10,550 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:13:10,550 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-14 15:13:10,550 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 15:13:10,550 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:13:10,550 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:13:10,550 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-14 15:13:10,550 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-14 15:13:10,550 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 15:13:10,550 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-14 15:13:10,550 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 15:13:10,550 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:13:10,550 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 15:13:10,550 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 15:13:10,550 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 15:13:10,550 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-14 15:13:10,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-04-14 15:13:10,551 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 57 [2022-04-14 15:13:10,551 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 15:13:10,551 INFO L478 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-04-14 15:13:10,551 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-14 15:13:10,551 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 15:13:10,551 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 15:13:10,553 INFO L788 garLoopResultBuilder]: Registering result SAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-04-14 15:13:10,559 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Ended with exit code 0 [2022-04-14 15:13:10,757 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-14 15:13:10,759 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-04-14 15:13:39,079 WARN L232 SmtUtils]: Spent 28.22s 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-14 15:13:45,353 WARN L232 SmtUtils]: Spent 6.25s 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-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point reach_errorEXIT(line 7) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point reach_errorENTRY(line 7) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point reach_errorFINAL(line 7) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L885 garLoopResultBuilder]: At program point assume_abort_if_notENTRY(lines 10 12) the Hoare annotation is: true [2022-04-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point L11(line 11) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point L11-2(lines 10 12) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L882 garLoopResultBuilder]: For program point assume_abort_if_notEXIT(lines 10 12) no Hoare annotation was computed. [2022-04-14 15:13:45,694 INFO L878 garLoopResultBuilder]: At program point L27(line 27) the Hoare annotation is: (and (<= 0 main_~X~0) (<= main_~X~0 50)) [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L27-1(line 27) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L885 garLoopResultBuilder]: At program point L25(line 25) the Hoare annotation is: true [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point mainEXIT(lines 21 53) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L25-1(line 25) no Hoare annotation was computed. [2022-04-14 15:13:45,695 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-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L50-1(line 50) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point mainFINAL(lines 21 53) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L40(lines 40 45) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L40-2(lines 40 45) no Hoare annotation was computed. [2022-04-14 15:13:45,695 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_~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 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50))) [2022-04-14 15:13:45,695 INFO L885 garLoopResultBuilder]: At program point mainENTRY(lines 21 53) the Hoare annotation is: true [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L32-3(lines 32 47) no Hoare annotation was computed. [2022-04-14 15:13:45,695 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))) (= (+ .cse1 .cse4) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~Y~0 50) (<= 0 main_~Y~0) (<= 0 main_~X~0) (<= main_~X~0 50) (or (= (+ .cse0 (* main_~y~0 2) .cse4) (+ (* 2 (* main_~y~0 main_~x~0)) .cse2)) .cse3))) [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point L35-1(lines 32 47) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2022-04-14 15:13:45,695 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-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-04-14 15:13:45,695 INFO L885 garLoopResultBuilder]: At program point L-1(line -1) the Hoare annotation is: true [2022-04-14 15:13:45,696 INFO L885 garLoopResultBuilder]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point L15(lines 15 16) no Hoare annotation was computed. [2022-04-14 15:13:45,696 INFO L885 garLoopResultBuilder]: At program point __VERIFIER_assertENTRY(lines 13 19) the Hoare annotation is: true [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point L14(lines 14 17) no Hoare annotation was computed. [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point L14-2(lines 13 19) no Hoare annotation was computed. [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertEXIT(lines 13 19) no Hoare annotation was computed. [2022-04-14 15:13:45,696 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 16) no Hoare annotation was computed. [2022-04-14 15:13:45,698 INFO L719 BasicCegarLoop]: Path program histogram: [3, 1, 1, 1, 1, 1] [2022-04-14 15:13:45,698 INFO L177 ceAbstractionStarter]: Computing trace abstraction results [2022-04-14 15:13:45,700 WARN L170 areAnnotationChecker]: reach_errorENTRY has no Hoare annotation [2022-04-14 15:13:45,700 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: reach_errorFINAL has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-14 15:13:45,707 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L11-2 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L14-2 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-14 15:13:45,708 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2022-04-14 15:13:45,711 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2022-04-14 15:13:45,711 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-14 15:13:45,714 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,715 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,717 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,717 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,718 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 14.04 03:13:45 BoogieIcfgContainer [2022-04-14 15:13:45,718 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-04-14 15:13:45,719 INFO L158 Benchmark]: Toolchain (without parser) took 361394.98ms. Allocated memory was 185.6MB in the beginning and 228.6MB in the end (delta: 43.0MB). Free memory was 135.3MB in the beginning and 119.8MB in the end (delta: 15.5MB). Peak memory consumption was 109.5MB. Max. memory is 8.0GB. [2022-04-14 15:13:45,719 INFO L158 Benchmark]: CDTParser took 0.09ms. Allocated memory is still 185.6MB. Free memory is still 151.1MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-14 15:13:45,719 INFO L158 Benchmark]: CACSL2BoogieTranslator took 171.42ms. Allocated memory is still 185.6MB. Free memory was 135.0MB in the beginning and 159.0MB in the end (delta: -24.0MB). Peak memory consumption was 12.4MB. Max. memory is 8.0GB. [2022-04-14 15:13:45,719 INFO L158 Benchmark]: Boogie Preprocessor took 18.81ms. Allocated memory is still 185.6MB. Free memory was 159.0MB in the beginning and 157.3MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2022-04-14 15:13:45,719 INFO L158 Benchmark]: RCFGBuilder took 275.64ms. Allocated memory is still 185.6MB. Free memory was 157.3MB in the beginning and 145.3MB in the end (delta: 12.0MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. [2022-04-14 15:13:45,720 INFO L158 Benchmark]: TraceAbstraction took 360923.89ms. Allocated memory was 185.6MB in the beginning and 228.6MB in the end (delta: 43.0MB). Free memory was 145.1MB in the beginning and 119.8MB in the end (delta: 25.3MB). Peak memory consumption was 120.2MB. Max. memory is 8.0GB. [2022-04-14 15:13:45,720 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.09ms. Allocated memory is still 185.6MB. Free memory is still 151.1MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 171.42ms. Allocated memory is still 185.6MB. Free memory was 135.0MB in the beginning and 159.0MB in the end (delta: -24.0MB). Peak memory consumption was 12.4MB. Max. memory is 8.0GB. * Boogie Preprocessor took 18.81ms. Allocated memory is still 185.6MB. Free memory was 159.0MB in the beginning and 157.3MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * RCFGBuilder took 275.64ms. Allocated memory is still 185.6MB. Free memory was 157.3MB in the beginning and 145.3MB in the end (delta: 12.0MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. * TraceAbstraction took 360923.89ms. Allocated memory was 185.6MB in the beginning and 228.6MB in the end (delta: 43.0MB). Free memory was 145.1MB in the beginning and 119.8MB in the end (delta: 25.3MB). Peak memory consumption was 120.2MB. 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: 360.9s, OverallIterations: 8, TraceHistogramMax: 5, PathProgramHistogramMax: 3, EmptinessCheckTime: 0.0s, AutomataDifference: 68.4s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 34.9s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 11 mSolverCounterUnknown, 151 SdHoareTripleChecker+Valid, 26.0s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 143 mSDsluCounter, 1077 SdHoareTripleChecker+Invalid, 25.9s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 147 IncrementalHoareTripleChecker+Unchecked, 886 mSDsCounter, 95 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 1282 IncrementalHoareTripleChecker+Invalid, 1535 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 95 mSolverCounterUnsat, 191 mSDtfsCounter, 1282 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 11 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 634 GetRequests, 493 SyntacticMatches, 6 SemanticMatches, 135 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 658 ImplicationChecksByTransitivity, 82.6s 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, 4666 FormulaSimplificationTreeSizeReductionInter, 34.8s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.0s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 246.5s InterpolantComputationTime, 327 NumberOfCodeBlocks, 309 NumberOfCodeBlocksAsserted, 10 NumberOfCheckSat, 594 ConstructedInterpolants, 6 QuantifiedInterpolants, 3384 SizeOfPredicates, 50 NumberOfNonLiveVariables, 854 ConjunctsInSsa, 128 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-14 15:13:45,724 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,724 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,725 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-14 15:13:45,725 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))) && Y * 2 + 2 * (Y * x) == X * y * 2 + X + v) && Y <= 50) && 0 <= Y) && 0 <= X) && X <= 50 RESULT: Ultimate proved your program to be correct! [2022-04-14 15:13:45,942 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-14 15:13:45,948 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request...