/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-34549b5 [2022-04-07 12:53:24,958 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-07 12:53:24,970 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-07 12:53:25,009 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-07 12:53:25,009 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-07 12:53:25,011 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-07 12:53:25,013 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-07 12:53:25,018 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-07 12:53:25,019 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-07 12:53:25,019 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-07 12:53:25,020 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-07 12:53:25,020 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-07 12:53:25,021 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-07 12:53:25,021 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-07 12:53:25,022 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-07 12:53:25,022 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-07 12:53:25,023 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-07 12:53:25,023 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-07 12:53:25,024 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-07 12:53:25,025 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-07 12:53:25,026 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-07 12:53:25,032 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-07 12:53:25,032 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-07 12:53:25,033 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-07 12:53:25,034 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-07 12:53:25,035 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-07 12:53:25,035 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-07 12:53:25,036 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-07 12:53:25,036 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-07 12:53:25,036 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-07 12:53:25,037 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-07 12:53:25,037 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-07 12:53:25,037 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-07 12:53:25,038 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-07 12:53:25,038 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-07 12:53:25,039 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-07 12:53:25,039 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-07 12:53:25,040 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-07 12:53:25,040 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-07 12:53:25,040 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-07 12:53:25,041 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-07 12:53:25,047 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-07 12:53:25,048 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2022-04-07 12:53:25,064 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-07 12:53:25,064 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-07 12:53:25,064 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-04-07 12:53:25,064 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-04-07 12:53:25,065 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-04-07 12:53:25,065 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-04-07 12:53:25,065 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-04-07 12:53:25,065 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * Use SBE=true [2022-04-07 12:53:25,066 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-07 12:53:25,066 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-07 12:53:25,067 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-07 12:53:25,067 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-07 12:53:25,068 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-04-07 12:53:25,068 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-04-07 12:53:25,069 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-07 12:53:25,069 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-07 12:53:25,236 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-07 12:53:25,252 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-07 12:53:25,253 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-07 12:53:25,254 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-07 12:53:25,255 INFO L275 PluginConnector]: CDTParser initialized [2022-04-07 12:53:25,256 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-07 12:53:25,296 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/47fdad982/914bc471725840f18dc48e2eb57e6b43/FLAGd07fcfb60 [2022-04-07 12:53:25,614 INFO L306 CDTParser]: Found 1 translation units. [2022-04-07 12:53:25,615 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/bresenham-ll_valuebound50.c [2022-04-07 12:53:25,621 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/47fdad982/914bc471725840f18dc48e2eb57e6b43/FLAGd07fcfb60 [2022-04-07 12:53:26,035 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/47fdad982/914bc471725840f18dc48e2eb57e6b43 [2022-04-07 12:53:26,036 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-07 12:53:26,037 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-07 12:53:26,040 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-07 12:53:26,040 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-07 12:53:26,042 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-07 12:53:26,043 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,043 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@667de41c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26, skipping insertion in model container [2022-04-07 12:53:26,043 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,047 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-07 12:53:26,057 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-07 12:53:26,199 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-07 12:53:26,231 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-07 12:53:26,237 INFO L203 MainTranslator]: Completed pre-run [2022-04-07 12:53:26,245 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-07 12:53:26,253 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-07 12:53:26,261 INFO L208 MainTranslator]: Completed translation [2022-04-07 12:53:26,262 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26 WrapperNode [2022-04-07 12:53:26,262 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-07 12:53:26,263 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-07 12:53:26,263 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-07 12:53:26,263 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-07 12:53:26,269 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,269 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,274 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,274 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,285 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,289 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,292 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,295 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-07 12:53:26,296 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-07 12:53:26,296 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-07 12:53:26,296 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-07 12:53:26,297 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (1/1) ... [2022-04-07 12:53:26,301 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-07 12:53:26,308 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:26,325 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-07 12:53:26,330 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-07 12:53:26,350 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-07 12:53:26,351 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-07 12:53:26,351 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-07 12:53:26,352 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-07 12:53:26,353 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-07 12:53:26,353 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-07 12:53:26,353 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-07 12:53:26,354 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-07 12:53:26,401 INFO L234 CfgBuilder]: Building ICFG [2022-04-07 12:53:26,402 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-07 12:53:26,564 INFO L275 CfgBuilder]: Performing block encoding [2022-04-07 12:53:26,568 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-07 12:53:26,569 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-07 12:53:26,570 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.04 12:53:26 BoogieIcfgContainer [2022-04-07 12:53:26,570 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-07 12:53:26,571 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-07 12:53:26,571 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-07 12:53:26,580 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-07 12:53:26,580 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 07.04 12:53:26" (1/3) ... [2022-04-07 12:53:26,580 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@32e2a1a2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.04 12:53:26, skipping insertion in model container [2022-04-07 12:53:26,581 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 07.04 12:53:26" (2/3) ... [2022-04-07 12:53:26,581 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@32e2a1a2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.04 12:53:26, skipping insertion in model container [2022-04-07 12:53:26,581 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.04 12:53:26" (3/3) ... [2022-04-07 12:53:26,582 INFO L111 eAbstractionObserver]: Analyzing ICFG bresenham-ll_valuebound50.c [2022-04-07 12:53:26,585 INFO L203 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-04-07 12:53:26,585 INFO L162 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-07 12:53:26,622 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-07 12:53:26,627 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP [2022-04-07 12:53:26,629 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-07 12:53:26,646 INFO L276 IsEmpty]: Start isEmpty. Operand has 32 states, 20 states have (on average 1.35) internal successors, (27), 21 states have internal predecessors, (27), 6 states have call successors, (6), 4 states have call predecessors, (6), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:26,649 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-07 12:53:26,649 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:26,649 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:26,650 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:26,653 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:26,653 INFO L85 PathProgramCache]: Analyzing trace with hash -1867489771, now seen corresponding path program 1 times [2022-04-07 12:53:26,659 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:26,659 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1781524506] [2022-04-07 12:53:26,660 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:26,661 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:26,748 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:26,799 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-07 12:53:26,814 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:26,824 INFO L290 TraceCheckUtils]: 0: Hoare triple {48#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-07 12:53:26,824 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-07 12:53:26,824 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-07 12:53:26,825 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-07 12:53:26,830 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:26,845 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:53:26,846 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:53:26,846 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:53:26,846 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-07 12:53:26,846 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-07 12:53:26,847 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:26,854 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:53:26,855 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:53:26,855 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:53:26,855 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-07 12:53:26,856 INFO L272 TraceCheckUtils]: 0: Hoare triple {35#true} call ULTIMATE.init(); {48#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-07 12:53:26,856 INFO L290 TraceCheckUtils]: 1: Hoare triple {48#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-07 12:53:26,856 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-07 12:53:26,856 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #69#return; {35#true} is VALID [2022-04-07 12:53:26,856 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret8 := main(); {35#true} is VALID [2022-04-07 12:53:26,856 INFO L290 TraceCheckUtils]: 5: Hoare triple {35#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {35#true} is VALID [2022-04-07 12:53:26,857 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-07 12:53:26,857 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:53:26,857 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:53:26,858 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:53:26,858 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-07 12:53:26,858 INFO L290 TraceCheckUtils]: 11: Hoare triple {36#false} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {36#false} is VALID [2022-04-07 12:53:26,858 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-07 12:53:26,858 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-07 12:53:26,859 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-07 12:53:26,859 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-07 12:53:26,860 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-07 12:53:26,861 INFO L290 TraceCheckUtils]: 17: Hoare triple {36#false} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {36#false} is VALID [2022-04-07 12:53:26,861 INFO L290 TraceCheckUtils]: 18: Hoare triple {36#false} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {36#false} is VALID [2022-04-07 12:53:26,861 INFO L272 TraceCheckUtils]: 19: Hoare triple {36#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {36#false} is VALID [2022-04-07 12:53:26,861 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-07 12:53:26,861 INFO L290 TraceCheckUtils]: 21: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-07 12:53:26,861 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-07 12:53:26,862 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-07 12:53:26,862 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:53:26,862 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1781524506] [2022-04-07 12:53:26,863 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1781524506] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-07 12:53:26,863 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-07 12:53:26,863 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-07 12:53:26,864 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [692822524] [2022-04-07 12:53:26,864 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-07 12:53:26,868 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 23 [2022-04-07 12:53:26,869 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:53:26,873 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:53:26,902 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:26,903 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-07 12:53:26,903 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:53:26,923 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-07 12:53:26,924 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-07 12:53:26,926 INFO L87 Difference]: Start difference. First operand has 32 states, 20 states have (on average 1.35) internal successors, (27), 21 states have internal predecessors, (27), 6 states have call successors, (6), 4 states have call predecessors, (6), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:53:27,054 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,055 INFO L93 Difference]: Finished difference Result 57 states and 74 transitions. [2022-04-07 12:53:27,055 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-07 12:53:27,055 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 23 [2022-04-07 12:53:27,055 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:53:27,056 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:53:27,062 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-07 12:53:27,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:53:27,068 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 74 transitions. [2022-04-07 12:53:27,068 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 74 transitions. [2022-04-07 12:53:27,160 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:27,170 INFO L225 Difference]: With dead ends: 57 [2022-04-07 12:53:27,170 INFO L226 Difference]: Without dead ends: 27 [2022-04-07 12:53:27,173 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-07 12:53:27,176 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 20 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 6 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 24 SdHoareTripleChecker+Valid, 34 SdHoareTripleChecker+Invalid, 11 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 6 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-07 12:53:27,177 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [24 Valid, 34 Invalid, 11 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 6 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-07 12:53:27,189 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-07 12:53:27,203 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-07 12:53:27,203 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:53:27,204 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-07 12:53:27,205 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-07 12:53:27,205 INFO L87 Difference]: Start difference. First operand 27 states. Second operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-07 12:53:27,208 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,208 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-07 12:53:27,208 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:53:27,209 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:27,209 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:27,209 INFO L74 IsIncluded]: Start isIncluded. First operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 27 states. [2022-04-07 12:53:27,210 INFO L87 Difference]: Start difference. First operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) Second operand 27 states. [2022-04-07 12:53:27,212 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,212 INFO L93 Difference]: Finished difference Result 27 states and 30 transitions. [2022-04-07 12:53:27,212 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:53:27,212 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:27,213 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:27,213 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:53:27,213 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:53:27,213 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 17 states have (on average 1.1764705882352942) internal successors, (20), 18 states have internal predecessors, (20), 6 states have call successors, (6), 4 states have call predecessors, (6), 3 states have return successors, (4), 4 states have call predecessors, (4), 4 states have call successors, (4) [2022-04-07 12:53:27,215 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 30 transitions. [2022-04-07 12:53:27,215 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 30 transitions. Word has length 23 [2022-04-07 12:53:27,216 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:53:27,216 INFO L478 AbstractCegarLoop]: Abstraction has 27 states and 30 transitions. [2022-04-07 12:53:27,216 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (5), 3 states have call predecessors, (5), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-07 12:53:27,216 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 30 transitions. [2022-04-07 12:53:27,217 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 24 [2022-04-07 12:53:27,217 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:27,217 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:27,217 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-07 12:53:27,217 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:27,218 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:27,218 INFO L85 PathProgramCache]: Analyzing trace with hash 1827672217, now seen corresponding path program 1 times [2022-04-07 12:53:27,218 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:27,218 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1443713631] [2022-04-07 12:53:27,219 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:27,219 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:27,245 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:53:27,246 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1057663913] [2022-04-07 12:53:27,246 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:27,246 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:27,246 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:27,255 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:53:27,256 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-07 12:53:27,317 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:27,322 INFO L263 TraceCheckSpWp]: Trace formula consists of 84 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-07 12:53:27,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:27,353 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:53:27,544 INFO L272 TraceCheckUtils]: 0: Hoare triple {217#true} call ULTIMATE.init(); {217#true} is VALID [2022-04-07 12:53:27,545 INFO L290 TraceCheckUtils]: 1: Hoare triple {217#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {217#true} is VALID [2022-04-07 12:53:27,545 INFO L290 TraceCheckUtils]: 2: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:53:27,545 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {217#true} {217#true} #69#return; {217#true} is VALID [2022-04-07 12:53:27,545 INFO L272 TraceCheckUtils]: 4: Hoare triple {217#true} call #t~ret8 := main(); {217#true} is VALID [2022-04-07 12:53:27,545 INFO L290 TraceCheckUtils]: 5: Hoare triple {217#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {217#true} is VALID [2022-04-07 12:53:27,545 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-07 12:53:27,545 INFO L290 TraceCheckUtils]: 7: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-07 12:53:27,546 INFO L290 TraceCheckUtils]: 8: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-07 12:53:27,546 INFO L290 TraceCheckUtils]: 9: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:53:27,547 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {217#true} {217#true} #61#return; {217#true} is VALID [2022-04-07 12:53:27,547 INFO L290 TraceCheckUtils]: 11: Hoare triple {217#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {217#true} is VALID [2022-04-07 12:53:27,547 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-07 12:53:27,547 INFO L290 TraceCheckUtils]: 13: Hoare triple {217#true} ~cond := #in~cond; {217#true} is VALID [2022-04-07 12:53:27,550 INFO L290 TraceCheckUtils]: 14: Hoare triple {217#true} assume !(0 == ~cond); {217#true} is VALID [2022-04-07 12:53:27,550 INFO L290 TraceCheckUtils]: 15: Hoare triple {217#true} assume true; {217#true} is VALID [2022-04-07 12:53:27,550 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {217#true} {217#true} #63#return; {217#true} is VALID [2022-04-07 12:53:27,552 INFO L290 TraceCheckUtils]: 17: Hoare triple {217#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {273#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:27,553 INFO L290 TraceCheckUtils]: 18: Hoare triple {273#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {277#(and (= main_~xy~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~yx~0 0))} is VALID [2022-04-07 12:53:27,554 INFO L272 TraceCheckUtils]: 19: Hoare triple {277#(and (= main_~xy~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~yx~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {281#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:27,554 INFO L290 TraceCheckUtils]: 20: Hoare triple {281#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {285#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:27,555 INFO L290 TraceCheckUtils]: 21: Hoare triple {285#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {218#false} is VALID [2022-04-07 12:53:27,555 INFO L290 TraceCheckUtils]: 22: Hoare triple {218#false} assume !false; {218#false} is VALID [2022-04-07 12:53:27,555 INFO L134 CoverageAnalysis]: Checked inductivity of 4 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-07 12:53:27,556 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-07 12:53:27,556 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:53:27,556 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1443713631] [2022-04-07 12:53:27,556 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:53:27,556 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1057663913] [2022-04-07 12:53:27,559 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1057663913] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-07 12:53:27,559 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-07 12:53:27,560 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-07 12:53:27,561 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1369693589] [2022-04-07 12:53:27,561 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-07 12:53:27,562 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 23 [2022-04-07 12:53:27,562 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:53:27,563 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:53:27,578 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:27,578 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-07 12:53:27,579 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:53:27,580 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-07 12:53:27,580 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-07 12:53:27,581 INFO L87 Difference]: Start difference. First operand 27 states and 30 transitions. Second operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:53:27,776 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,777 INFO L93 Difference]: Finished difference Result 39 states and 44 transitions. [2022-04-07 12:53:27,777 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-07 12:53:27,777 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) Word has length 23 [2022-04-07 12:53:27,778 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:53:27,778 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:53:27,790 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-07 12:53:27,790 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:53:27,792 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2022-04-07 12:53:27,792 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2022-04-07 12:53:27,824 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:27,826 INFO L225 Difference]: With dead ends: 39 [2022-04-07 12:53:27,827 INFO L226 Difference]: Without dead ends: 35 [2022-04-07 12:53:27,827 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 18 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 1 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-07 12:53:27,829 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 10 mSDsluCounter, 69 mSDsCounter, 0 mSdLazyCounter, 61 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 10 SdHoareTripleChecker+Valid, 91 SdHoareTripleChecker+Invalid, 66 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 61 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-07 12:53:27,829 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [10 Valid, 91 Invalid, 66 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 61 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-07 12:53:27,831 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2022-04-07 12:53:27,840 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 34. [2022-04-07 12:53:27,841 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:53:27,841 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-07 12:53:27,841 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-07 12:53:27,844 INFO L87 Difference]: Start difference. First operand 35 states. Second operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-07 12:53:27,848 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,849 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-07 12:53:27,849 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-07 12:53:27,850 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:27,850 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:27,851 INFO L74 IsIncluded]: Start isIncluded. First operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 35 states. [2022-04-07 12:53:27,851 INFO L87 Difference]: Start difference. First operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 35 states. [2022-04-07 12:53:27,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:27,860 INFO L93 Difference]: Finished difference Result 35 states and 39 transitions. [2022-04-07 12:53:27,860 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 39 transitions. [2022-04-07 12:53:27,861 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:27,861 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:27,861 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:53:27,861 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:53:27,862 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 22 states have (on average 1.1363636363636365) internal successors, (25), 23 states have internal predecessors, (25), 7 states have call successors, (7), 5 states have call predecessors, (7), 4 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-07 12:53:27,863 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 37 transitions. [2022-04-07 12:53:27,863 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 37 transitions. Word has length 23 [2022-04-07 12:53:27,879 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:53:27,879 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 37 transitions. [2022-04-07 12:53:27,880 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 5 states have (on average 2.4) internal successors, (12), 5 states have internal predecessors, (12), 2 states have call successors, (5), 2 states have call predecessors, (5), 1 states have return successors, (3), 1 states have call predecessors, (3), 1 states have call successors, (3) [2022-04-07 12:53:27,880 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 37 transitions. [2022-04-07 12:53:27,880 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 33 [2022-04-07 12:53:27,881 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:27,881 INFO L499 BasicCegarLoop]: trace histogram [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:27,902 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Forceful destruction successful, exit code 0 [2022-04-07 12:53:28,081 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:28,082 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:28,082 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:28,082 INFO L85 PathProgramCache]: Analyzing trace with hash -1419291471, now seen corresponding path program 1 times [2022-04-07 12:53:28,083 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:28,083 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1678366771] [2022-04-07 12:53:28,083 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:28,083 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:28,100 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:53:28,100 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1813408523] [2022-04-07 12:53:28,100 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:28,100 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:28,100 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:28,101 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:53:28,115 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-07 12:53:28,152 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:28,153 INFO L263 TraceCheckSpWp]: Trace formula consists of 103 conjuncts, 17 conjunts are in the unsatisfiable core [2022-04-07 12:53:28,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:28,174 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:53:28,376 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-07 12:53:28,376 INFO L290 TraceCheckUtils]: 1: Hoare triple {467#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {467#true} is VALID [2022-04-07 12:53:28,376 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,377 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-07 12:53:28,377 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-07 12:53:28,377 INFO L290 TraceCheckUtils]: 5: Hoare triple {467#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {467#true} is VALID [2022-04-07 12:53:28,377 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-07 12:53:28,377 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,377 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,377 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,377 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-07 12:53:28,378 INFO L290 TraceCheckUtils]: 11: Hoare triple {467#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {467#true} is VALID [2022-04-07 12:53:28,378 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-07 12:53:28,378 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,378 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,378 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,378 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-07 12:53:28,379 INFO L290 TraceCheckUtils]: 17: Hoare triple {467#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:28,379 INFO L290 TraceCheckUtils]: 18: Hoare triple {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:28,379 INFO L272 TraceCheckUtils]: 19: Hoare triple {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {467#true} is VALID [2022-04-07 12:53:28,379 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,379 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,380 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,380 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {467#true} {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} #65#return; {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:28,381 INFO L290 TraceCheckUtils]: 24: Hoare triple {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:28,381 INFO L290 TraceCheckUtils]: 25: Hoare triple {523#(and (= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0) (= main_~y~0 0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {548#(and (= main_~x~0 0) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-07 12:53:28,382 INFO L290 TraceCheckUtils]: 26: Hoare triple {548#(and (= main_~x~0 0) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {552#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-07 12:53:28,382 INFO L290 TraceCheckUtils]: 27: Hoare triple {552#(and (= main_~x~0 1) (= main_~y~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {556#(and (= main_~xy~0 0) (= main_~Y~0 main_~yx~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} is VALID [2022-04-07 12:53:28,383 INFO L272 TraceCheckUtils]: 28: Hoare triple {556#(and (= main_~xy~0 0) (= main_~Y~0 main_~yx~0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) (+ main_~v~0 (* (- 2) main_~Y~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:28,384 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:28,384 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-07 12:53:28,384 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-07 12:53:28,384 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-07 12:53:28,384 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:53:28,562 INFO L290 TraceCheckUtils]: 31: Hoare triple {468#false} assume !false; {468#false} is VALID [2022-04-07 12:53:28,562 INFO L290 TraceCheckUtils]: 30: Hoare triple {564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {468#false} is VALID [2022-04-07 12:53:28,563 INFO L290 TraceCheckUtils]: 29: Hoare triple {560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:28,564 INFO L272 TraceCheckUtils]: 28: Hoare triple {580#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:28,565 INFO L290 TraceCheckUtils]: 27: Hoare triple {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {580#(= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))} is VALID [2022-04-07 12:53:28,566 INFO L290 TraceCheckUtils]: 26: Hoare triple {588#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:28,567 INFO L290 TraceCheckUtils]: 25: Hoare triple {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {588#(= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))} is VALID [2022-04-07 12:53:28,567 INFO L290 TraceCheckUtils]: 24: Hoare triple {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !!(~x~0 <= ~X~0); {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:28,568 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {467#true} {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} #65#return; {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:28,568 INFO L290 TraceCheckUtils]: 22: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,568 INFO L290 TraceCheckUtils]: 21: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,568 INFO L290 TraceCheckUtils]: 20: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,568 INFO L272 TraceCheckUtils]: 19: Hoare triple {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {467#true} is VALID [2022-04-07 12:53:28,571 INFO L290 TraceCheckUtils]: 18: Hoare triple {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:28,571 INFO L290 TraceCheckUtils]: 17: Hoare triple {467#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {584#(= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:28,572 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {467#true} {467#true} #63#return; {467#true} is VALID [2022-04-07 12:53:28,572 INFO L290 TraceCheckUtils]: 15: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,572 INFO L290 TraceCheckUtils]: 14: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,572 INFO L290 TraceCheckUtils]: 13: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,572 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-07 12:53:28,572 INFO L290 TraceCheckUtils]: 11: Hoare triple {467#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {467#true} is VALID [2022-04-07 12:53:28,572 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {467#true} {467#true} #61#return; {467#true} is VALID [2022-04-07 12:53:28,572 INFO L290 TraceCheckUtils]: 9: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,573 INFO L290 TraceCheckUtils]: 8: Hoare triple {467#true} assume !(0 == ~cond); {467#true} is VALID [2022-04-07 12:53:28,573 INFO L290 TraceCheckUtils]: 7: Hoare triple {467#true} ~cond := #in~cond; {467#true} is VALID [2022-04-07 12:53:28,573 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-07 12:53:28,573 INFO L290 TraceCheckUtils]: 5: Hoare triple {467#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {467#true} is VALID [2022-04-07 12:53:28,573 INFO L272 TraceCheckUtils]: 4: Hoare triple {467#true} call #t~ret8 := main(); {467#true} is VALID [2022-04-07 12:53:28,574 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {467#true} {467#true} #69#return; {467#true} is VALID [2022-04-07 12:53:28,574 INFO L290 TraceCheckUtils]: 2: Hoare triple {467#true} assume true; {467#true} is VALID [2022-04-07 12:53:28,575 INFO L290 TraceCheckUtils]: 1: Hoare triple {467#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {467#true} is VALID [2022-04-07 12:53:28,577 INFO L272 TraceCheckUtils]: 0: Hoare triple {467#true} call ULTIMATE.init(); {467#true} is VALID [2022-04-07 12:53:28,577 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-07 12:53:28,577 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:53:28,579 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1678366771] [2022-04-07 12:53:28,579 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:53:28,579 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1813408523] [2022-04-07 12:53:28,580 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1813408523] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:53:28,580 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:53:28,580 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 7] total 11 [2022-04-07 12:53:28,580 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [748378742] [2022-04-07 12:53:28,580 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:53:28,581 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 32 [2022-04-07 12:53:28,581 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:53:28,581 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:53:28,619 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:28,619 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 11 states [2022-04-07 12:53:28,620 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:53:28,620 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2022-04-07 12:53:28,620 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=23, Invalid=87, Unknown=0, NotChecked=0, Total=110 [2022-04-07 12:53:28,620 INFO L87 Difference]: Start difference. First operand 34 states and 37 transitions. Second operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:53:29,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:29,170 INFO L93 Difference]: Finished difference Result 48 states and 54 transitions. [2022-04-07 12:53:29,170 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-07 12:53:29,170 INFO L78 Accepts]: Start accepts. Automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) Word has length 32 [2022-04-07 12:53:29,171 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:53:29,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:53:29,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-07 12:53:29,173 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:53:29,174 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 51 transitions. [2022-04-07 12:53:29,174 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 51 transitions. [2022-04-07 12:53:29,221 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:29,222 INFO L225 Difference]: With dead ends: 48 [2022-04-07 12:53:29,222 INFO L226 Difference]: Without dead ends: 42 [2022-04-07 12:53:29,223 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 67 GetRequests, 52 SyntacticMatches, 2 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=44, Invalid=166, Unknown=0, NotChecked=0, Total=210 [2022-04-07 12:53:29,223 INFO L913 BasicCegarLoop]: 21 mSDtfsCounter, 14 mSDsluCounter, 114 mSDsCounter, 0 mSdLazyCounter, 166 mSolverCounterSat, 11 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s 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.2s IncrementalHoareTripleChecker+Time [2022-04-07 12:53:29,224 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.2s Time] [2022-04-07 12:53:29,224 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2022-04-07 12:53:29,229 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 41. [2022-04-07 12:53:29,229 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:53:29,229 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:29,230 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:29,230 INFO L87 Difference]: Start difference. First operand 42 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:29,233 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:29,233 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-07 12:53:29,233 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-07 12:53:29,234 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:29,234 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:29,234 INFO L74 IsIncluded]: Start isIncluded. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 42 states. [2022-04-07 12:53:29,234 INFO L87 Difference]: Start difference. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 42 states. [2022-04-07 12:53:29,236 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:29,236 INFO L93 Difference]: Finished difference Result 42 states and 47 transitions. [2022-04-07 12:53:29,236 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 47 transitions. [2022-04-07 12:53:29,236 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:29,236 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:29,236 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:53:29,236 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:53:29,237 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:29,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-07 12:53:29,238 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 32 [2022-04-07 12:53:29,238 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:53:29,238 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-07 12:53:29,238 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 11 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 10 states have internal predecessors, (25), 5 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (5), 3 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-07 12:53:29,238 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-07 12:53:29,239 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-07 12:53:29,239 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:29,239 INFO L499 BasicCegarLoop]: trace histogram [3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:29,270 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-04-07 12:53:29,456 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-07 12:53:29,456 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:29,456 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:29,457 INFO L85 PathProgramCache]: Analyzing trace with hash 125050924, now seen corresponding path program 1 times [2022-04-07 12:53:29,457 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:29,457 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [39578865] [2022-04-07 12:53:29,457 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:29,457 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:29,471 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:53:29,471 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [190180751] [2022-04-07 12:53:29,471 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:29,472 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:29,472 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:29,488 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:53:29,501 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-07 12:53:29,542 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:29,543 INFO L263 TraceCheckSpWp]: Trace formula consists of 119 conjuncts, 26 conjunts are in the unsatisfiable core [2022-04-07 12:53:29,561 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:29,563 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:53:29,968 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-07 12:53:29,979 INFO L290 TraceCheckUtils]: 1: Hoare triple {885#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {885#true} is VALID [2022-04-07 12:53:29,979 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:29,979 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-07 12:53:29,979 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-07 12:53:29,980 INFO L290 TraceCheckUtils]: 5: Hoare triple {885#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {885#true} is VALID [2022-04-07 12:53:29,980 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-07 12:53:29,980 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:29,980 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:29,980 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:29,980 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-07 12:53:29,980 INFO L290 TraceCheckUtils]: 11: Hoare triple {885#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {885#true} is VALID [2022-04-07 12:53:29,980 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-07 12:53:29,980 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:29,980 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:29,981 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:29,981 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-07 12:53:29,981 INFO L290 TraceCheckUtils]: 17: Hoare triple {885#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:29,982 INFO L290 TraceCheckUtils]: 18: Hoare triple {941#(and (= main_~x~0 0) (= main_~y~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:29,982 INFO L272 TraceCheckUtils]: 19: Hoare triple {941#(and (= main_~x~0 0) (= main_~y~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {885#true} is VALID [2022-04-07 12:53:29,982 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:29,982 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:29,982 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:29,991 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {885#true} {941#(and (= main_~x~0 0) (= main_~y~0 0))} #65#return; {941#(and (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:29,991 INFO L290 TraceCheckUtils]: 24: Hoare triple {941#(and (= main_~x~0 0) (= main_~y~0 0))} assume !!(~x~0 <= ~X~0); {963#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 0))} is VALID [2022-04-07 12:53:29,992 INFO L290 TraceCheckUtils]: 25: Hoare triple {963#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {967#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1))} is VALID [2022-04-07 12:53:29,992 INFO L290 TraceCheckUtils]: 26: Hoare triple {967#(and (<= main_~x~0 main_~X~0) (= main_~x~0 0) (= main_~y~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {971#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:53:29,993 INFO L290 TraceCheckUtils]: 27: Hoare triple {971#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (<= main_~x~0 (+ main_~X~0 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {975#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:53:29,993 INFO L272 TraceCheckUtils]: 28: Hoare triple {975#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {885#true} is VALID [2022-04-07 12:53:29,993 INFO L290 TraceCheckUtils]: 29: Hoare triple {885#true} ~cond := #in~cond; {982#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:29,994 INFO L290 TraceCheckUtils]: 30: Hoare triple {982#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:29,994 INFO L290 TraceCheckUtils]: 31: Hoare triple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:29,995 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} {975#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~yx~0 (* main_~Y~0 main_~x~0)) (<= main_~x~0 (+ main_~X~0 1)))} #65#return; {993#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:53:29,996 INFO L290 TraceCheckUtils]: 33: Hoare triple {993#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (<= main_~x~0 (+ main_~X~0 1)))} assume !(~x~0 <= ~X~0); {997#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} is VALID [2022-04-07 12:53:29,997 INFO L290 TraceCheckUtils]: 34: Hoare triple {997#(and (= (+ (- 1) main_~x~0) 0) (= main_~y~0 1) (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (not (<= main_~x~0 main_~X~0)) (<= main_~x~0 (+ main_~X~0 1)))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1001#(and (not (<= 1 main_~X~0)) (= main_~y~0 main_~xy~0) (= main_~y~0 1) (<= 0 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 4)) (= main_~Y~0 main_~yx~0))} is VALID [2022-04-07 12:53:29,998 INFO L272 TraceCheckUtils]: 35: Hoare triple {1001#(and (not (<= 1 main_~X~0)) (= main_~y~0 main_~xy~0) (= main_~y~0 1) (<= 0 main_~X~0) (= (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0) (* main_~Y~0 4)) (= main_~Y~0 main_~yx~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:29,999 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:29,999 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-07 12:53:29,999 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-07 12:53:29,999 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-07 12:53:29,999 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:53:30,616 INFO L290 TraceCheckUtils]: 38: Hoare triple {886#false} assume !false; {886#false} is VALID [2022-04-07 12:53:30,616 INFO L290 TraceCheckUtils]: 37: Hoare triple {1009#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {886#false} is VALID [2022-04-07 12:53:30,617 INFO L290 TraceCheckUtils]: 36: Hoare triple {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1009#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:53:30,617 INFO L272 TraceCheckUtils]: 35: Hoare triple {1025#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1005#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:53:30,618 INFO L290 TraceCheckUtils]: 34: Hoare triple {1029#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1025#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:53:30,618 INFO L290 TraceCheckUtils]: 33: Hoare triple {1033#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {1029#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-07 12:53:30,620 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} {1037#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {1033#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-07 12:53:30,621 INFO L290 TraceCheckUtils]: 31: Hoare triple {986#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:30,621 INFO L290 TraceCheckUtils]: 30: Hoare triple {1047#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {986#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:53:30,621 INFO L290 TraceCheckUtils]: 29: Hoare triple {885#true} ~cond := #in~cond; {1047#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:53:30,621 INFO L272 TraceCheckUtils]: 28: Hoare triple {1037#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {885#true} is VALID [2022-04-07 12:53:30,622 INFO L290 TraceCheckUtils]: 27: Hoare triple {1054#(or (<= main_~x~0 main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1037#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-07 12:53:30,624 INFO L290 TraceCheckUtils]: 26: Hoare triple {1058#(or (<= (+ main_~x~0 1) main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* (+ main_~x~0 1) main_~Y~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1054#(or (<= main_~x~0 main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* main_~Y~0 main_~x~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))))} is VALID [2022-04-07 12:53:30,625 INFO L290 TraceCheckUtils]: 25: Hoare triple {1062#(or (forall ((main_~Y~0 Int)) (= (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1))) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))) (<= (+ main_~x~0 1) main_~X~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {1058#(or (<= (+ main_~x~0 1) main_~X~0) (forall ((main_~Y~0 Int)) (= (+ (* (* (+ main_~x~0 1) main_~y~0) 2) (* main_~Y~0 2) (* (* main_~X~0 main_~y~0) (- 2)) (* 2 (* (+ main_~x~0 1) main_~Y~0))) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))))} is VALID [2022-04-07 12:53:30,626 INFO L290 TraceCheckUtils]: 24: Hoare triple {885#true} assume !!(~x~0 <= ~X~0); {1062#(or (forall ((main_~Y~0 Int)) (= (+ (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0)) (* 2 (* (+ main_~x~0 1) (+ main_~y~0 1))) (* (* main_~X~0 (+ main_~y~0 1)) (- 2))) (+ 2 (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* (+ main_~x~0 1) main_~Y~0))))) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:53:30,627 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {885#true} {885#true} #65#return; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 22: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 21: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 20: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L272 TraceCheckUtils]: 19: Hoare triple {885#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 18: Hoare triple {885#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 17: Hoare triple {885#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {885#true} {885#true} #63#return; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 15: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:30,627 INFO L290 TraceCheckUtils]: 14: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:30,628 INFO L290 TraceCheckUtils]: 13: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:30,628 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-07 12:53:30,628 INFO L290 TraceCheckUtils]: 11: Hoare triple {885#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {885#true} is VALID [2022-04-07 12:53:30,628 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {885#true} {885#true} #61#return; {885#true} is VALID [2022-04-07 12:53:30,628 INFO L290 TraceCheckUtils]: 9: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:30,628 INFO L290 TraceCheckUtils]: 8: Hoare triple {885#true} assume !(0 == ~cond); {885#true} is VALID [2022-04-07 12:53:30,628 INFO L290 TraceCheckUtils]: 7: Hoare triple {885#true} ~cond := #in~cond; {885#true} is VALID [2022-04-07 12:53:30,628 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-07 12:53:30,628 INFO L290 TraceCheckUtils]: 5: Hoare triple {885#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {885#true} is VALID [2022-04-07 12:53:30,628 INFO L272 TraceCheckUtils]: 4: Hoare triple {885#true} call #t~ret8 := main(); {885#true} is VALID [2022-04-07 12:53:30,629 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {885#true} {885#true} #69#return; {885#true} is VALID [2022-04-07 12:53:30,629 INFO L290 TraceCheckUtils]: 2: Hoare triple {885#true} assume true; {885#true} is VALID [2022-04-07 12:53:30,629 INFO L290 TraceCheckUtils]: 1: Hoare triple {885#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {885#true} is VALID [2022-04-07 12:53:30,629 INFO L272 TraceCheckUtils]: 0: Hoare triple {885#true} call ULTIMATE.init(); {885#true} is VALID [2022-04-07 12:53:30,629 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-04-07 12:53:30,629 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:53:30,629 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [39578865] [2022-04-07 12:53:30,629 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:53:30,630 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [190180751] [2022-04-07 12:53:30,630 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [190180751] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:53:30,630 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:53:30,630 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14, 13] total 22 [2022-04-07 12:53:30,630 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2010984940] [2022-04-07 12:53:30,630 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:53:30,630 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 39 [2022-04-07 12:53:30,631 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:53:30,631 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:30,669 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:30,670 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-04-07 12:53:30,670 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:53:30,670 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-04-07 12:53:30,670 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=73, Invalid=389, Unknown=0, NotChecked=0, Total=462 [2022-04-07 12:53:30,671 INFO L87 Difference]: Start difference. First operand 41 states and 45 transitions. Second operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:31,669 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:31,669 INFO L93 Difference]: Finished difference Result 60 states and 68 transitions. [2022-04-07 12:53:31,669 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 26 states. [2022-04-07 12:53:31,670 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 39 [2022-04-07 12:53:31,670 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:53:31,670 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:31,672 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-07 12:53:31,672 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:31,673 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 62 transitions. [2022-04-07 12:53:31,674 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 26 states and 62 transitions. [2022-04-07 12:53:31,733 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:53:31,734 INFO L225 Difference]: With dead ends: 60 [2022-04-07 12:53:31,734 INFO L226 Difference]: Without dead ends: 52 [2022-04-07 12:53:31,735 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-07 12:53:31,735 INFO L913 BasicCegarLoop]: 20 mSDtfsCounter, 28 mSDsluCounter, 202 mSDsCounter, 0 mSdLazyCounter, 254 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 222 SdHoareTripleChecker+Invalid, 377 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 25 IncrementalHoareTripleChecker+Valid, 254 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 98 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-07 12:53:31,735 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 222 Invalid, 377 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [25 Valid, 254 Invalid, 0 Unknown, 98 Unchecked, 0.3s Time] [2022-04-07 12:53:31,736 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-07 12:53:31,744 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 41. [2022-04-07 12:53:31,744 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:53:31,744 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:31,744 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:31,745 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:31,746 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:31,746 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-07 12:53:31,746 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-07 12:53:31,747 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:31,747 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:31,747 INFO L74 IsIncluded]: Start isIncluded. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 52 states. [2022-04-07 12:53:31,747 INFO L87 Difference]: Start difference. First operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 52 states. [2022-04-07 12:53:31,749 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:53:31,749 INFO L93 Difference]: Finished difference Result 52 states and 59 transitions. [2022-04-07 12:53:31,749 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 59 transitions. [2022-04-07 12:53:31,749 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:53:31,749 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:53:31,749 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:53:31,750 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:53:31,750 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 41 states, 28 states have (on average 1.1071428571428572) internal successors, (31), 28 states have internal predecessors, (31), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-07 12:53:31,751 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 45 transitions. [2022-04-07 12:53:31,751 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 45 transitions. Word has length 39 [2022-04-07 12:53:31,751 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:53:31,751 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 45 transitions. [2022-04-07 12:53:31,751 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 18 states have (on average 1.8888888888888888) internal successors, (34), 19 states have internal predecessors, (34), 6 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:53:31,751 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 45 transitions. [2022-04-07 12:53:31,752 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-07 12:53:31,752 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:53:31,752 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:53:31,770 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-07 12:53:31,953 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:31,953 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:53:31,953 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:53:31,953 INFO L85 PathProgramCache]: Analyzing trace with hash 1662296326, now seen corresponding path program 1 times [2022-04-07 12:53:31,954 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:53:31,954 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1515636227] [2022-04-07 12:53:31,954 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:31,954 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:53:31,967 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:53:31,967 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [301636542] [2022-04-07 12:53:31,967 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:53:31,967 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:53:31,967 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:53:31,968 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:53:31,969 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-07 12:53:32,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:32,006 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 23 conjunts are in the unsatisfiable core [2022-04-07 12:53:32,013 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:53:32,014 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:53:41,887 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:53:47,692 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:54:02,259 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-07 12:54:02,259 INFO L290 TraceCheckUtils]: 1: Hoare triple {1417#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {1417#true} is VALID [2022-04-07 12:54:02,259 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:02,259 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-07 12:54:02,259 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-07 12:54:02,259 INFO L290 TraceCheckUtils]: 5: Hoare triple {1417#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1417#true} is VALID [2022-04-07 12:54:02,260 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-07 12:54:02,260 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L290 TraceCheckUtils]: 11: Hoare triple {1417#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1417#true} is VALID [2022-04-07 12:54:02,260 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-07 12:54:02,260 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:02,260 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-07 12:54:02,261 INFO L290 TraceCheckUtils]: 17: Hoare triple {1417#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,261 INFO L290 TraceCheckUtils]: 18: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,261 INFO L272 TraceCheckUtils]: 19: Hoare triple {1473#(= main_~y~0 0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:02,261 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:02,261 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:02,262 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:02,262 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,262 INFO L290 TraceCheckUtils]: 24: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,263 INFO L290 TraceCheckUtils]: 25: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,263 INFO L290 TraceCheckUtils]: 26: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,263 INFO L290 TraceCheckUtils]: 27: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,263 INFO L272 TraceCheckUtils]: 28: Hoare triple {1473#(= main_~y~0 0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:02,264 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:54:02,264 INFO L290 TraceCheckUtils]: 30: Hoare triple {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:02,264 INFO L290 TraceCheckUtils]: 31: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:02,265 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,266 INFO L290 TraceCheckUtils]: 33: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,266 INFO L290 TraceCheckUtils]: 34: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,266 INFO L290 TraceCheckUtils]: 35: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:02,267 INFO L290 TraceCheckUtils]: 36: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1533#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} is VALID [2022-04-07 12:54:02,267 INFO L272 TraceCheckUtils]: 37: Hoare triple {1533#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:02,267 INFO L290 TraceCheckUtils]: 38: Hoare triple {1417#true} ~cond := #in~cond; {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:54:02,268 INFO L290 TraceCheckUtils]: 39: Hoare triple {1510#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:02,268 INFO L290 TraceCheckUtils]: 40: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:02,269 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1533#(and (= (* main_~X~0 main_~y~0) main_~xy~0) (= main_~y~0 0) (= main_~yx~0 (* main_~Y~0 main_~x~0)))} #65#return; {1549#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-07 12:54:02,270 INFO L290 TraceCheckUtils]: 42: Hoare triple {1549#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} assume !(~x~0 <= ~X~0); {1549#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} is VALID [2022-04-07 12:54:04,272 WARN L290 TraceCheckUtils]: 43: Hoare triple {1549#(and (= (+ (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= main_~y~0 0))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1556#(and (= main_~y~0 0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~xy~0 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)))) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} is UNKNOWN [2022-04-07 12:54:04,273 INFO L272 TraceCheckUtils]: 44: Hoare triple {1556#(and (= main_~y~0 0) (or (and (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (= main_~xy~0 0) (= main_~yx~0 0) (= 0 (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)))) (and (= (* main_~y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0)) main_~xy~0) (= (mod (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0) 0) (= (mod (+ (* main_~X~0 main_~y~0 2) main_~X~0 main_~v~0) 2) 0) (not (= main_~Y~0 0)) (= main_~yx~0 (* main_~Y~0 (div (+ (* main_~X~0 main_~y~0) (div (+ main_~X~0 main_~v~0) 2) (* (- 1) main_~Y~0)) main_~Y~0))))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:54:04,274 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:54:04,274 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-07 12:54:04,274 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-07 12:54:04,274 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 14 proven. 2 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-07 12:54:04,274 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:54:09,074 INFO L290 TraceCheckUtils]: 47: Hoare triple {1418#false} assume !false; {1418#false} is VALID [2022-04-07 12:54:09,075 INFO L290 TraceCheckUtils]: 46: Hoare triple {1564#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1418#false} is VALID [2022-04-07 12:54:09,080 INFO L290 TraceCheckUtils]: 45: Hoare triple {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1564#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:54:09,082 INFO L272 TraceCheckUtils]: 44: Hoare triple {1580#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1560#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:54:09,090 INFO L290 TraceCheckUtils]: 43: Hoare triple {1584#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1580#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:54:09,091 INFO L290 TraceCheckUtils]: 42: Hoare triple {1584#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} assume !(~x~0 <= ~X~0); {1584#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-07 12:54:09,093 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} {1591#(= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} #65#return; {1584#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-07 12:54:09,094 INFO L290 TraceCheckUtils]: 40: Hoare triple {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:09,097 INFO L290 TraceCheckUtils]: 39: Hoare triple {1601#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {1514#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:54:09,098 INFO L290 TraceCheckUtils]: 38: Hoare triple {1417#true} ~cond := #in~cond; {1601#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:54:09,098 INFO L272 TraceCheckUtils]: 37: Hoare triple {1591#(= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:09,098 INFO L290 TraceCheckUtils]: 36: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1591#(= (+ (* 2 (* main_~y~0 main_~x~0)) (* (- 2) main_~xy~0) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-07 12:54:09,099 INFO L290 TraceCheckUtils]: 35: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,099 INFO L290 TraceCheckUtils]: 34: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,100 INFO L290 TraceCheckUtils]: 33: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,100 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,100 INFO L290 TraceCheckUtils]: 31: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:09,101 INFO L290 TraceCheckUtils]: 30: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:09,101 INFO L290 TraceCheckUtils]: 29: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:09,101 INFO L272 TraceCheckUtils]: 28: Hoare triple {1473#(= main_~y~0 0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:09,101 INFO L290 TraceCheckUtils]: 27: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,101 INFO L290 TraceCheckUtils]: 26: Hoare triple {1473#(= main_~y~0 0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,102 INFO L290 TraceCheckUtils]: 25: Hoare triple {1473#(= main_~y~0 0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,102 INFO L290 TraceCheckUtils]: 24: Hoare triple {1473#(= main_~y~0 0)} assume !!(~x~0 <= ~X~0); {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,103 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1417#true} {1473#(= main_~y~0 0)} #65#return; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,103 INFO L290 TraceCheckUtils]: 22: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:09,103 INFO L290 TraceCheckUtils]: 21: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:09,103 INFO L290 TraceCheckUtils]: 20: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:09,103 INFO L272 TraceCheckUtils]: 19: Hoare triple {1473#(= main_~y~0 0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1417#true} is VALID [2022-04-07 12:54:09,104 INFO L290 TraceCheckUtils]: 18: Hoare triple {1473#(= main_~y~0 0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,104 INFO L290 TraceCheckUtils]: 17: Hoare triple {1417#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {1473#(= main_~y~0 0)} is VALID [2022-04-07 12:54:09,104 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1417#true} {1417#true} #63#return; {1417#true} is VALID [2022-04-07 12:54:09,104 INFO L290 TraceCheckUtils]: 15: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:09,104 INFO L290 TraceCheckUtils]: 14: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:09,104 INFO L290 TraceCheckUtils]: 13: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:09,104 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-07 12:54:09,104 INFO L290 TraceCheckUtils]: 11: Hoare triple {1417#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1417#true} {1417#true} #61#return; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L290 TraceCheckUtils]: 9: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L290 TraceCheckUtils]: 8: Hoare triple {1417#true} assume !(0 == ~cond); {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L290 TraceCheckUtils]: 7: Hoare triple {1417#true} ~cond := #in~cond; {1417#true} is VALID [2022-04-07 12:54:09,105 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-07 12:54:09,105 INFO L290 TraceCheckUtils]: 5: Hoare triple {1417#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L272 TraceCheckUtils]: 4: Hoare triple {1417#true} call #t~ret8 := main(); {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1417#true} {1417#true} #69#return; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L290 TraceCheckUtils]: 2: Hoare triple {1417#true} assume true; {1417#true} is VALID [2022-04-07 12:54:09,105 INFO L290 TraceCheckUtils]: 1: Hoare triple {1417#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {1417#true} is VALID [2022-04-07 12:54:09,106 INFO L272 TraceCheckUtils]: 0: Hoare triple {1417#true} call ULTIMATE.init(); {1417#true} is VALID [2022-04-07 12:54:09,106 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 11 proven. 5 refuted. 0 times theorem prover too weak. 17 trivial. 0 not checked. [2022-04-07 12:54:09,106 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:54:09,106 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1515636227] [2022-04-07 12:54:09,106 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:54:09,106 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [301636542] [2022-04-07 12:54:09,106 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [301636542] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:54:09,106 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:54:09,107 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 14 [2022-04-07 12:54:09,107 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1294961306] [2022-04-07 12:54:09,107 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:54:09,107 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 48 [2022-04-07 12:54:09,109 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:54:09,109 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:54:11,152 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:11,153 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-07 12:54:11,153 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:54:11,153 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-07 12:54:11,153 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=147, Unknown=0, NotChecked=0, Total=182 [2022-04-07 12:54:11,153 INFO L87 Difference]: Start difference. First operand 41 states and 45 transitions. Second operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:54:13,271 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:17,361 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:19,376 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:21,383 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:23,478 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:25,503 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:54:27,747 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:27,747 INFO L93 Difference]: Finished difference Result 56 states and 63 transitions. [2022-04-07 12:54:27,747 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:54:27,748 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) Word has length 48 [2022-04-07 12:54:27,748 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:54:27,748 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:54:27,749 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-07 12:54:27,749 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:54:27,750 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 48 transitions. [2022-04-07 12:54:27,750 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 48 transitions. [2022-04-07 12:54:29,802 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 47 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:29,804 INFO L225 Difference]: With dead ends: 56 [2022-04-07 12:54:29,804 INFO L226 Difference]: Without dead ends: 50 [2022-04-07 12:54:29,804 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 81 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 50 ImplicationChecksByTransitivity, 4.3s TimeCoverageRelationStatistics Valid=66, Invalid=238, Unknown=2, NotChecked=0, Total=306 [2022-04-07 12:54:29,804 INFO L913 BasicCegarLoop]: 19 mSDtfsCounter, 25 mSDsluCounter, 114 mSDsCounter, 0 mSdLazyCounter, 143 mSolverCounterSat, 13 mSolverCounterUnsat, 6 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 12.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 26 SdHoareTripleChecker+Valid, 133 SdHoareTripleChecker+Invalid, 162 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 143 IncrementalHoareTripleChecker+Invalid, 6 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 12.2s IncrementalHoareTripleChecker+Time [2022-04-07 12:54:29,805 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [26 Valid, 133 Invalid, 162 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 143 Invalid, 6 Unknown, 0 Unchecked, 12.2s Time] [2022-04-07 12:54:29,805 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2022-04-07 12:54:29,819 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 44. [2022-04-07 12:54:29,819 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:54:29,819 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:54:29,819 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:54:29,819 INFO L87 Difference]: Start difference. First operand 50 states. Second operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:54:29,823 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:29,823 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-07 12:54:29,823 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-07 12:54:29,827 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:29,828 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:29,828 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 50 states. [2022-04-07 12:54:29,828 INFO L87 Difference]: Start difference. First operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 50 states. [2022-04-07 12:54:29,829 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:29,829 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-04-07 12:54:29,829 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 57 transitions. [2022-04-07 12:54:29,830 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:29,830 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:29,830 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:54:29,830 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:54:29,830 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 30 states have (on average 1.1) internal successors, (33), 31 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-07 12:54:29,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 49 transitions. [2022-04-07 12:54:29,831 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 49 transitions. Word has length 48 [2022-04-07 12:54:29,832 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:54:29,832 INFO L478 AbstractCegarLoop]: Abstraction has 44 states and 49 transitions. [2022-04-07 12:54:29,832 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 10 states have (on average 2.9) internal successors, (29), 13 states have internal predecessors, (29), 6 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 4 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-07 12:54:29,832 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 49 transitions. [2022-04-07 12:54:29,832 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-04-07 12:54:29,832 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:54:29,833 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:54:29,851 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-07 12:54:30,033 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:30,033 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:54:30,034 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:54:30,034 INFO L85 PathProgramCache]: Analyzing trace with hash -143142008, now seen corresponding path program 1 times [2022-04-07 12:54:30,034 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:54:30,034 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [682739740] [2022-04-07 12:54:30,034 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:30,034 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:54:30,048 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:54:30,048 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1501990972] [2022-04-07 12:54:30,048 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:30,049 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:30,049 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:54:30,068 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:54:30,068 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-07 12:54:30,106 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:30,107 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-07 12:54:30,135 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:30,136 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:54:32,190 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L290 TraceCheckUtils]: 1: Hoare triple {1968#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L290 TraceCheckUtils]: 5: Hoare triple {1968#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1968#true} is VALID [2022-04-07 12:54:32,191 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-07 12:54:32,191 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,191 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L290 TraceCheckUtils]: 11: Hoare triple {1968#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1968#true} is VALID [2022-04-07 12:54:32,192 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-07 12:54:32,192 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,192 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-07 12:54:32,193 INFO L290 TraceCheckUtils]: 17: Hoare triple {1968#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:54:32,194 INFO L290 TraceCheckUtils]: 18: Hoare triple {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:54:32,194 INFO L272 TraceCheckUtils]: 19: Hoare triple {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,194 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,194 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,194 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,195 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1968#true} {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} #65#return; {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:54:32,195 INFO L290 TraceCheckUtils]: 24: Hoare triple {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !!(~x~0 <= ~X~0); {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} is VALID [2022-04-07 12:54:32,196 INFO L290 TraceCheckUtils]: 25: Hoare triple {2024#(and (<= main_~x~0 0) (= (+ (* (- 1) main_~X~0) (* main_~Y~0 2)) main_~v~0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2049#(and (<= main_~x~0 0) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:54:32,197 INFO L290 TraceCheckUtils]: 26: Hoare triple {2049#(and (<= main_~x~0 0) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:54:32,198 INFO L290 TraceCheckUtils]: 27: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:54:32,198 INFO L272 TraceCheckUtils]: 28: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,198 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,198 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,198 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,199 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1968#true} {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} #65#return; {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:54:32,200 INFO L290 TraceCheckUtils]: 33: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume !!(~x~0 <= ~X~0); {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} is VALID [2022-04-07 12:54:32,200 INFO L290 TraceCheckUtils]: 34: Hoare triple {2053#(and (<= main_~x~0 1) (<= (+ (div (+ (- 1) main_~X~0) 2) 1) (div (+ main_~v~0 (* main_~X~0 3)) 4)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2078#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 1))} is VALID [2022-04-07 12:54:32,201 INFO L290 TraceCheckUtils]: 35: Hoare triple {2078#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 1))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:54:32,202 INFO L290 TraceCheckUtils]: 36: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:54:32,202 INFO L272 TraceCheckUtils]: 37: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,202 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,202 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,202 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,203 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1968#true} {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} #65#return; {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} is VALID [2022-04-07 12:54:32,203 INFO L290 TraceCheckUtils]: 42: Hoare triple {2082#(and (< (div (+ (- 1) main_~X~0) 2) (div (+ (- 1) (* main_~X~0 3)) 4)) (<= main_~x~0 2))} assume !(~x~0 <= ~X~0); {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L290 TraceCheckUtils]: 43: Hoare triple {1969#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L272 TraceCheckUtils]: 44: Hoare triple {1969#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-07 12:54:32,204 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 6 proven. 11 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-07 12:54:32,204 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:54:32,517 INFO L290 TraceCheckUtils]: 47: Hoare triple {1969#false} assume !false; {1969#false} is VALID [2022-04-07 12:54:32,517 INFO L290 TraceCheckUtils]: 46: Hoare triple {1969#false} assume 0 == ~cond; {1969#false} is VALID [2022-04-07 12:54:32,517 INFO L290 TraceCheckUtils]: 45: Hoare triple {1969#false} ~cond := #in~cond; {1969#false} is VALID [2022-04-07 12:54:32,517 INFO L272 TraceCheckUtils]: 44: Hoare triple {1969#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {1969#false} is VALID [2022-04-07 12:54:32,517 INFO L290 TraceCheckUtils]: 43: Hoare triple {1969#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {1969#false} is VALID [2022-04-07 12:54:32,517 INFO L290 TraceCheckUtils]: 42: Hoare triple {2134#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {1969#false} is VALID [2022-04-07 12:54:32,518 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {1968#true} {2134#(<= main_~x~0 main_~X~0)} #65#return; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:32,518 INFO L290 TraceCheckUtils]: 40: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,518 INFO L290 TraceCheckUtils]: 39: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,518 INFO L290 TraceCheckUtils]: 38: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,518 INFO L272 TraceCheckUtils]: 37: Hoare triple {2134#(<= main_~x~0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,523 INFO L290 TraceCheckUtils]: 36: Hoare triple {2134#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:32,524 INFO L290 TraceCheckUtils]: 35: Hoare triple {2156#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2134#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:32,524 INFO L290 TraceCheckUtils]: 34: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2156#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:32,525 INFO L290 TraceCheckUtils]: 33: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} assume !!(~x~0 <= ~X~0); {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:32,525 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1968#true} {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} #65#return; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:32,526 INFO L290 TraceCheckUtils]: 31: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,526 INFO L290 TraceCheckUtils]: 30: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,526 INFO L290 TraceCheckUtils]: 29: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,526 INFO L272 TraceCheckUtils]: 28: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,526 INFO L290 TraceCheckUtils]: 27: Hoare triple {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:32,527 INFO L290 TraceCheckUtils]: 26: Hoare triple {2185#(or (<= (+ main_~x~0 2) main_~X~0) (not (< main_~v~0 0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2160#(or (not (< main_~v~0 0)) (<= (+ main_~x~0 1) main_~X~0))} is VALID [2022-04-07 12:54:32,527 INFO L290 TraceCheckUtils]: 25: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2185#(or (<= (+ main_~x~0 2) main_~X~0) (not (< main_~v~0 0)))} is VALID [2022-04-07 12:54:32,528 INFO L290 TraceCheckUtils]: 24: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} assume !!(~x~0 <= ~X~0); {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:32,528 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1968#true} {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} #65#return; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:32,529 INFO L290 TraceCheckUtils]: 22: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,529 INFO L290 TraceCheckUtils]: 21: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,529 INFO L290 TraceCheckUtils]: 20: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,529 INFO L272 TraceCheckUtils]: 19: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {1968#true} is VALID [2022-04-07 12:54:32,529 INFO L290 TraceCheckUtils]: 18: Hoare triple {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:32,530 INFO L290 TraceCheckUtils]: 17: Hoare triple {1968#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2189#(or (<= (+ main_~x~0 2) main_~X~0) (<= (* main_~X~0 2) (+ main_~v~0 (* main_~Y~0 2))) (< main_~v~0 0))} is VALID [2022-04-07 12:54:32,530 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1968#true} {1968#true} #63#return; {1968#true} is VALID [2022-04-07 12:54:32,530 INFO L290 TraceCheckUtils]: 15: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,530 INFO L290 TraceCheckUtils]: 14: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,530 INFO L290 TraceCheckUtils]: 13: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,530 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-07 12:54:32,530 INFO L290 TraceCheckUtils]: 11: Hoare triple {1968#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {1968#true} is VALID [2022-04-07 12:54:32,530 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1968#true} {1968#true} #61#return; {1968#true} is VALID [2022-04-07 12:54:32,530 INFO L290 TraceCheckUtils]: 9: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L290 TraceCheckUtils]: 8: Hoare triple {1968#true} assume !(0 == ~cond); {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L290 TraceCheckUtils]: 7: Hoare triple {1968#true} ~cond := #in~cond; {1968#true} is VALID [2022-04-07 12:54:32,531 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-07 12:54:32,531 INFO L290 TraceCheckUtils]: 5: Hoare triple {1968#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L272 TraceCheckUtils]: 4: Hoare triple {1968#true} call #t~ret8 := main(); {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1968#true} {1968#true} #69#return; {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L290 TraceCheckUtils]: 2: Hoare triple {1968#true} assume true; {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L290 TraceCheckUtils]: 1: Hoare triple {1968#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L272 TraceCheckUtils]: 0: Hoare triple {1968#true} call ULTIMATE.init(); {1968#true} is VALID [2022-04-07 12:54:32,531 INFO L134 CoverageAnalysis]: Checked inductivity of 33 backedges. 6 proven. 11 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-07 12:54:32,531 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:54:32,532 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [682739740] [2022-04-07 12:54:32,532 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:54:32,532 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1501990972] [2022-04-07 12:54:32,532 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1501990972] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:54:32,532 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:54:32,532 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 12 [2022-04-07 12:54:32,532 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1252674874] [2022-04-07 12:54:32,532 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:54:32,533 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) Word has length 48 [2022-04-07 12:54:32,533 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:54:32,533 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:32,575 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:32,575 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-07 12:54:32,576 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:54:32,576 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-07 12:54:32,576 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2022-04-07 12:54:32,576 INFO L87 Difference]: Start difference. First operand 44 states and 49 transitions. Second operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:32,941 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:32,942 INFO L93 Difference]: Finished difference Result 65 states and 75 transitions. [2022-04-07 12:54:32,942 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:54:32,942 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) Word has length 48 [2022-04-07 12:54:32,942 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:54:32,942 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:32,943 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-07 12:54:32,944 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:32,945 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 58 transitions. [2022-04-07 12:54:32,945 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 58 transitions. [2022-04-07 12:54:33,009 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:33,010 INFO L225 Difference]: With dead ends: 65 [2022-04-07 12:54:33,010 INFO L226 Difference]: Without dead ends: 59 [2022-04-07 12:54:33,011 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 85 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=59, Invalid=181, Unknown=0, NotChecked=0, Total=240 [2022-04-07 12:54:33,011 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-07 12:54:33,011 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-07 12:54:33,012 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-04-07 12:54:33,029 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 51. [2022-04-07 12:54:33,030 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:54:33,030 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:33,030 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:33,031 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:33,032 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:33,032 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-07 12:54:33,032 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-07 12:54:33,033 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:33,033 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:33,033 INFO L74 IsIncluded]: Start isIncluded. First operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 59 states. [2022-04-07 12:54:33,034 INFO L87 Difference]: Start difference. First operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 59 states. [2022-04-07 12:54:33,036 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:33,036 INFO L93 Difference]: Finished difference Result 59 states and 69 transitions. [2022-04-07 12:54:33,036 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 69 transitions. [2022-04-07 12:54:33,036 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:33,036 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:33,036 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:54:33,036 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:54:33,036 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 51 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-07 12:54:33,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 59 transitions. [2022-04-07 12:54:33,040 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 59 transitions. Word has length 48 [2022-04-07 12:54:33,040 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:54:33,040 INFO L478 AbstractCegarLoop]: Abstraction has 51 states and 59 transitions. [2022-04-07 12:54:33,040 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.0) internal successors, (36), 12 states have internal predecessors, (36), 8 states have call successors, (11), 2 states have call predecessors, (11), 1 states have return successors, (9), 7 states have call predecessors, (9), 7 states have call successors, (9) [2022-04-07 12:54:33,040 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 59 transitions. [2022-04-07 12:54:33,043 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-07 12:54:33,043 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:54:33,043 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:54:33,075 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-04-07 12:54:33,259 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:33,259 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:54:33,260 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:54:33,260 INFO L85 PathProgramCache]: Analyzing trace with hash 55892592, now seen corresponding path program 2 times [2022-04-07 12:54:33,260 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:54:33,260 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2117693152] [2022-04-07 12:54:33,260 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:33,260 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:54:33,274 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:54:33,274 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1871095967] [2022-04-07 12:54:33,274 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-07 12:54:33,274 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:33,274 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:54:33,284 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:54:33,285 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-07 12:54:33,326 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-07 12:54:33,326 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-07 12:54:33,327 INFO L263 TraceCheckSpWp]: Trace formula consists of 157 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-07 12:54:33,338 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:33,339 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:54:34,326 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L290 TraceCheckUtils]: 1: Hoare triple {2555#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L290 TraceCheckUtils]: 5: Hoare triple {2555#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2555#true} is VALID [2022-04-07 12:54:34,326 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-07 12:54:34,326 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,326 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L290 TraceCheckUtils]: 11: Hoare triple {2555#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2555#true} is VALID [2022-04-07 12:54:34,327 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-07 12:54:34,327 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,327 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-07 12:54:34,328 INFO L290 TraceCheckUtils]: 17: Hoare triple {2555#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:34,328 INFO L290 TraceCheckUtils]: 18: Hoare triple {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:34,328 INFO L272 TraceCheckUtils]: 19: Hoare triple {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,328 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,328 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,328 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,329 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2555#true} {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} #65#return; {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:34,329 INFO L290 TraceCheckUtils]: 24: Hoare triple {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume !!(~x~0 <= ~X~0); {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} is VALID [2022-04-07 12:54:34,330 INFO L290 TraceCheckUtils]: 25: Hoare triple {2611#(and (<= main_~x~0 0) (<= (* main_~Y~0 2) (+ main_~X~0 main_~v~0)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2636#(and (<= main_~x~0 0) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:34,331 INFO L290 TraceCheckUtils]: 26: Hoare triple {2636#(and (<= main_~x~0 0) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:34,332 INFO L290 TraceCheckUtils]: 27: Hoare triple {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:34,332 INFO L272 TraceCheckUtils]: 28: Hoare triple {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,332 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,332 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,332 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,333 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2555#true} {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} #65#return; {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:34,333 INFO L290 TraceCheckUtils]: 33: Hoare triple {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !!(~x~0 <= ~X~0); {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} is VALID [2022-04-07 12:54:34,334 INFO L290 TraceCheckUtils]: 34: Hoare triple {2640#(and (<= main_~x~0 1) (< (div (+ (- 1) (* (- 1) main_~v~0)) (- 2)) (+ (div (+ (- 1) main_~X~0) 2) 1)))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2665#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,334 INFO L290 TraceCheckUtils]: 35: Hoare triple {2665#(and (<= main_~x~0 1) (< 0 (div (+ (- 1) main_~X~0) 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,335 INFO L290 TraceCheckUtils]: 36: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,335 INFO L272 TraceCheckUtils]: 37: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,335 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,335 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,335 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,336 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {2555#true} {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} #65#return; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,336 INFO L290 TraceCheckUtils]: 42: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !!(~x~0 <= ~X~0); {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,337 INFO L290 TraceCheckUtils]: 43: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,337 INFO L290 TraceCheckUtils]: 44: Hoare triple {2669#(and (<= main_~x~0 2) (< 0 (div (+ (- 1) main_~X~0) 2)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,338 INFO L290 TraceCheckUtils]: 45: Hoare triple {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,338 INFO L272 TraceCheckUtils]: 46: Hoare triple {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,338 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,338 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,338 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,339 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {2555#true} {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} #65#return; {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} is VALID [2022-04-07 12:54:34,340 INFO L290 TraceCheckUtils]: 51: Hoare triple {2697#(and (<= main_~x~0 3) (< 0 (div (+ (- 1) main_~X~0) 2)))} assume !(~x~0 <= ~X~0); {2556#false} is VALID [2022-04-07 12:54:34,341 INFO L290 TraceCheckUtils]: 52: Hoare triple {2556#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {2556#false} is VALID [2022-04-07 12:54:34,341 INFO L272 TraceCheckUtils]: 53: Hoare triple {2556#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {2556#false} is VALID [2022-04-07 12:54:34,341 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-07 12:54:34,341 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-07 12:54:34,341 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-07 12:54:34,342 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-07 12:54:34,342 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:54:34,677 INFO L290 TraceCheckUtils]: 56: Hoare triple {2556#false} assume !false; {2556#false} is VALID [2022-04-07 12:54:34,677 INFO L290 TraceCheckUtils]: 55: Hoare triple {2556#false} assume 0 == ~cond; {2556#false} is VALID [2022-04-07 12:54:34,678 INFO L290 TraceCheckUtils]: 54: Hoare triple {2556#false} ~cond := #in~cond; {2556#false} is VALID [2022-04-07 12:54:34,678 INFO L272 TraceCheckUtils]: 53: Hoare triple {2556#false} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {2556#false} is VALID [2022-04-07 12:54:34,678 INFO L290 TraceCheckUtils]: 52: Hoare triple {2556#false} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {2556#false} is VALID [2022-04-07 12:54:34,685 INFO L290 TraceCheckUtils]: 51: Hoare triple {2749#(<= main_~x~0 main_~X~0)} assume !(~x~0 <= ~X~0); {2556#false} is VALID [2022-04-07 12:54:34,685 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {2555#true} {2749#(<= main_~x~0 main_~X~0)} #65#return; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:34,685 INFO L290 TraceCheckUtils]: 49: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,685 INFO L290 TraceCheckUtils]: 48: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,686 INFO L290 TraceCheckUtils]: 47: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,686 INFO L272 TraceCheckUtils]: 46: Hoare triple {2749#(<= main_~x~0 main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,686 INFO L290 TraceCheckUtils]: 45: Hoare triple {2749#(<= main_~x~0 main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:34,687 INFO L290 TraceCheckUtils]: 44: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2749#(<= main_~x~0 main_~X~0)} is VALID [2022-04-07 12:54:34,687 INFO L290 TraceCheckUtils]: 43: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:34,687 INFO L290 TraceCheckUtils]: 42: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume !!(~x~0 <= ~X~0); {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:34,688 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {2555#true} {2771#(<= (+ main_~x~0 1) main_~X~0)} #65#return; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:34,688 INFO L290 TraceCheckUtils]: 40: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,688 INFO L290 TraceCheckUtils]: 39: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,688 INFO L290 TraceCheckUtils]: 38: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,688 INFO L272 TraceCheckUtils]: 37: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,688 INFO L290 TraceCheckUtils]: 36: Hoare triple {2771#(<= (+ main_~x~0 1) main_~X~0)} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:34,689 INFO L290 TraceCheckUtils]: 35: Hoare triple {2799#(<= (+ main_~x~0 2) main_~X~0)} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2771#(<= (+ main_~x~0 1) main_~X~0)} is VALID [2022-04-07 12:54:34,689 INFO L290 TraceCheckUtils]: 34: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {2799#(<= (+ main_~x~0 2) main_~X~0)} is VALID [2022-04-07 12:54:34,689 INFO L290 TraceCheckUtils]: 33: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} assume !!(~x~0 <= ~X~0); {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:34,690 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {2555#true} {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} #65#return; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:34,690 INFO L290 TraceCheckUtils]: 31: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,690 INFO L290 TraceCheckUtils]: 30: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,690 INFO L290 TraceCheckUtils]: 29: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,690 INFO L272 TraceCheckUtils]: 28: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,691 INFO L290 TraceCheckUtils]: 27: Hoare triple {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:34,691 INFO L290 TraceCheckUtils]: 26: Hoare triple {2828#(or (< main_~v~0 0) (<= (+ main_~x~0 3) main_~X~0))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {2803#(or (<= (+ main_~x~0 2) main_~X~0) (< main_~v~0 0))} is VALID [2022-04-07 12:54:34,692 INFO L290 TraceCheckUtils]: 25: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {2828#(or (< main_~v~0 0) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:34,692 INFO L290 TraceCheckUtils]: 24: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume !!(~x~0 <= ~X~0); {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:34,693 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {2555#true} {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} #65#return; {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:34,693 INFO L290 TraceCheckUtils]: 22: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,693 INFO L290 TraceCheckUtils]: 21: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,693 INFO L290 TraceCheckUtils]: 20: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,693 INFO L272 TraceCheckUtils]: 19: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {2555#true} is VALID [2022-04-07 12:54:34,693 INFO L290 TraceCheckUtils]: 18: Hoare triple {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:34,694 INFO L290 TraceCheckUtils]: 17: Hoare triple {2555#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {2832#(or (< (+ main_~v~0 (* main_~Y~0 2)) 0) (not (< main_~v~0 0)) (<= (+ main_~x~0 3) main_~X~0))} is VALID [2022-04-07 12:54:34,694 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2555#true} {2555#true} #63#return; {2555#true} is VALID [2022-04-07 12:54:34,694 INFO L290 TraceCheckUtils]: 15: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,694 INFO L290 TraceCheckUtils]: 14: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,694 INFO L290 TraceCheckUtils]: 13: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,694 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-07 12:54:34,694 INFO L290 TraceCheckUtils]: 11: Hoare triple {2555#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {2555#true} is VALID [2022-04-07 12:54:34,694 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2555#true} {2555#true} #61#return; {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L290 TraceCheckUtils]: 9: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L290 TraceCheckUtils]: 8: Hoare triple {2555#true} assume !(0 == ~cond); {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L290 TraceCheckUtils]: 7: Hoare triple {2555#true} ~cond := #in~cond; {2555#true} is VALID [2022-04-07 12:54:34,695 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-07 12:54:34,695 INFO L290 TraceCheckUtils]: 5: Hoare triple {2555#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L272 TraceCheckUtils]: 4: Hoare triple {2555#true} call #t~ret8 := main(); {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2555#true} {2555#true} #69#return; {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L290 TraceCheckUtils]: 2: Hoare triple {2555#true} assume true; {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L290 TraceCheckUtils]: 1: Hoare triple {2555#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L272 TraceCheckUtils]: 0: Hoare triple {2555#true} call ULTIMATE.init(); {2555#true} is VALID [2022-04-07 12:54:34,695 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 8 proven. 24 refuted. 0 times theorem prover too weak. 28 trivial. 0 not checked. [2022-04-07 12:54:34,696 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:54:34,696 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2117693152] [2022-04-07 12:54:34,696 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:54:34,696 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1871095967] [2022-04-07 12:54:34,696 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1871095967] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:54:34,696 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:54:34,696 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 14 [2022-04-07 12:54:34,696 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1492805219] [2022-04-07 12:54:34,696 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:54:34,697 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) Word has length 57 [2022-04-07 12:54:34,697 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:54:34,697 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:34,744 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:34,744 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-07 12:54:34,744 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:54:34,744 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-07 12:54:34,744 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=137, Unknown=0, NotChecked=0, Total=182 [2022-04-07 12:54:34,745 INFO L87 Difference]: Start difference. First operand 51 states and 59 transitions. Second operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:35,401 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:35,401 INFO L93 Difference]: Finished difference Result 78 states and 93 transitions. [2022-04-07 12:54:35,401 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2022-04-07 12:54:35,402 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) Word has length 57 [2022-04-07 12:54:35,402 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:54:35,402 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:35,403 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-07 12:54:35,404 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:35,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 64 transitions. [2022-04-07 12:54:35,405 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 11 states and 64 transitions. [2022-04-07 12:54:35,454 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-07 12:54:35,455 INFO L225 Difference]: With dead ends: 78 [2022-04-07 12:54:35,455 INFO L226 Difference]: Without dead ends: 72 [2022-04-07 12:54:35,455 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 116 GetRequests, 101 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=64, Invalid=208, Unknown=0, NotChecked=0, Total=272 [2022-04-07 12:54:35,456 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-07 12:54:35,456 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-07 12:54:35,456 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2022-04-07 12:54:35,482 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 56. [2022-04-07 12:54:35,482 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:54:35,482 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:35,482 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:35,483 INFO L87 Difference]: Start difference. First operand 72 states. Second operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:35,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:35,488 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-07 12:54:35,488 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-07 12:54:35,488 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:35,489 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:35,489 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 72 states. [2022-04-07 12:54:35,489 INFO L87 Difference]: Start difference. First operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 72 states. [2022-04-07 12:54:35,493 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:54:35,494 INFO L93 Difference]: Finished difference Result 72 states and 87 transitions. [2022-04-07 12:54:35,494 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 87 transitions. [2022-04-07 12:54:35,494 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:54:35,495 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:54:35,495 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:54:35,495 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:54:35,495 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 40 states have (on average 1.15) internal successors, (46), 40 states have internal predecessors, (46), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-07 12:54:35,497 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 66 transitions. [2022-04-07 12:54:35,497 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 66 transitions. Word has length 57 [2022-04-07 12:54:35,498 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:54:35,498 INFO L478 AbstractCegarLoop]: Abstraction has 56 states and 66 transitions. [2022-04-07 12:54:35,498 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 14 states have (on average 3.142857142857143) internal successors, (44), 14 states have internal predecessors, (44), 10 states have call successors, (13), 2 states have call predecessors, (13), 1 states have return successors, (11), 9 states have call predecessors, (11), 9 states have call successors, (11) [2022-04-07 12:54:35,498 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 66 transitions. [2022-04-07 12:54:35,499 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 58 [2022-04-07 12:54:35,499 INFO L491 BasicCegarLoop]: Found error trace [2022-04-07 12:54:35,499 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-07 12:54:35,520 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Ended with exit code 0 [2022-04-07 12:54:35,720 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:35,720 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-07 12:54:35,720 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-07 12:54:35,720 INFO L85 PathProgramCache]: Analyzing trace with hash 2136090540, now seen corresponding path program 3 times [2022-04-07 12:54:35,720 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-07 12:54:35,720 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [841415723] [2022-04-07 12:54:35,720 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-07 12:54:35,721 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-07 12:54:35,743 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-07 12:54:35,743 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2046924266] [2022-04-07 12:54:35,744 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-07 12:54:35,744 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:54:35,744 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-07 12:54:35,746 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-07 12:54:35,747 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-07 12:54:36,081 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2022-04-07 12:54:36,081 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-07 12:54:36,082 INFO L263 TraceCheckSpWp]: Trace formula consists of 117 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-07 12:54:36,116 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-07 12:54:36,117 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-07 12:54:50,087 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:54:57,606 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:54:59,174 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:55:35,782 WARN L232 SmtUtils]: Spent 13.36s 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-07 12:56:31,673 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-07 12:56:31,673 INFO L290 TraceCheckUtils]: 1: Hoare triple {3248#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {3248#true} is VALID [2022-04-07 12:56:31,673 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:31,677 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-07 12:56:31,677 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-07 12:56:31,677 INFO L290 TraceCheckUtils]: 5: Hoare triple {3248#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {3248#true} is VALID [2022-04-07 12:56:31,677 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-07 12:56:31,677 INFO L290 TraceCheckUtils]: 7: Hoare triple {3248#true} ~cond := #in~cond; {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-07 12:56:31,678 INFO L290 TraceCheckUtils]: 8: Hoare triple {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:31,678 INFO L290 TraceCheckUtils]: 9: Hoare triple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:31,679 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-07 12:56:31,679 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-07 12:56:31,679 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-07 12:56:31,679 INFO L290 TraceCheckUtils]: 13: Hoare triple {3248#true} ~cond := #in~cond; {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-07 12:56:31,680 INFO L290 TraceCheckUtils]: 14: Hoare triple {3274#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:31,680 INFO L290 TraceCheckUtils]: 15: Hoare triple {3278#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {3278#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-07 12:56:31,681 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-07 12:56:31,681 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-07 12:56:31,681 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-07 12:56:31,681 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-07 12:56:31,682 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:31,682 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:31,682 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:31,682 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-07 12:56:31,682 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-07 12:56:31,683 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-07 12:56:31,683 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-07 12:56:31,684 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-07 12:56:31,684 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-07 12:56:31,684 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:31,684 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:31,684 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:31,684 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-07 12:56:31,685 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-07 12:56:31,685 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-07 12:56:31,686 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-07 12:56:31,686 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-07 12:56:31,686 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-07 12:56:31,686 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:56:31,686 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:56:31,686 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:56:31,687 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-07 12:56:31,688 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-07 12:56:31,688 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-07 12:56:31,689 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-07 12:56:31,690 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-07 12:56:31,690 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-07 12:56:31,690 INFO L290 TraceCheckUtils]: 47: Hoare triple {3248#true} ~cond := #in~cond; {3402#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:56:31,690 INFO L290 TraceCheckUtils]: 48: Hoare triple {3402#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:56:31,691 INFO L290 TraceCheckUtils]: 49: Hoare triple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:56:31,692 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-07 12:56:31,693 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-07 12:56:33,484 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-07 12:56:33,494 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-07 12:56:33,494 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:56:33,494 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-07 12:56:33,494 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-07 12:56:33,495 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 29 proven. 1 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-07 12:56:33,495 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-07 12:56:45,613 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:56:51,108 WARN L907 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-07 12:57:42,668 INFO L290 TraceCheckUtils]: 56: Hoare triple {3249#false} assume !false; {3249#false} is VALID [2022-04-07 12:57:42,669 INFO L290 TraceCheckUtils]: 55: Hoare triple {3429#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3249#false} is VALID [2022-04-07 12:57:42,669 INFO L290 TraceCheckUtils]: 54: Hoare triple {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3429#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-07 12:57:42,670 INFO L272 TraceCheckUtils]: 53: Hoare triple {3445#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 + 2 * ~y~0 then 1 else 0)); {3425#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-07 12:57:42,671 INFO L290 TraceCheckUtils]: 52: Hoare triple {3449#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} ~xy~0 := ~x~0 * ~y~0;~yx~0 := ~Y~0 * ~x~0; {3445#(= (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0))} is VALID [2022-04-07 12:57:42,671 INFO L290 TraceCheckUtils]: 51: Hoare triple {3453#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} assume !(~x~0 <= ~X~0); {3449#(= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))} is VALID [2022-04-07 12:57:42,672 INFO L284 TraceCheckUtils]: 50: Hoare quadruple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} {3457#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} #65#return; {3453#(or (<= main_~x~0 main_~X~0) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is VALID [2022-04-07 12:57:42,672 INFO L290 TraceCheckUtils]: 49: Hoare triple {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:57:42,673 INFO L290 TraceCheckUtils]: 48: Hoare triple {3467#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3406#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-07 12:57:42,673 INFO L290 TraceCheckUtils]: 47: Hoare triple {3248#true} ~cond := #in~cond; {3467#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-07 12:57:42,673 INFO L272 TraceCheckUtils]: 46: Hoare triple {3457#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:44,675 WARN L290 TraceCheckUtils]: 45: Hoare triple {3474#(or (<= main_~x~0 main_~X~0) (and (or (= (+ main_~X~0 main_~v~0 (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) main_~x~0) 2)) (+ (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 2) (* 2 (* main_~Y~0 main_~x~0)))) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 0)) (= main_~X~0 0) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0))) (or (forall ((main_~y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) 0)) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0)))))} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3457#(or (<= main_~x~0 main_~X~0) (not (= (+ (* 2 main_~xy~0) main_~X~0 main_~v~0) (+ (* main_~Y~0 2) (* 2 main_~yx~0)))) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0)))))} is UNKNOWN [2022-04-07 12:57:44,684 INFO L290 TraceCheckUtils]: 44: Hoare triple {3478#(forall ((v_main_~x~0_30 Int)) (or (not (<= v_main_~x~0_30 (+ main_~x~0 1))) (and (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (forall ((main_~y~0 Int)) (= (+ (* 2 (* v_main_~x~0_30 main_~y~0)) main_~X~0 main_~v~0) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* main_~y~0 2) (* main_~Y~0 2)))) (not (= main_~X~0 0)) (not (= 0 (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0)))) (or (not (= (mod (+ main_~X~0 main_~v~0 (* v_main_~x~0_30 (- 2) main_~Y~0)) 2) 0)) (= main_~X~0 0) (= (+ main_~X~0 main_~v~0 (* (* v_main_~x~0_30 (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0)) 2)) (+ (* (* v_main_~x~0_30 main_~Y~0) 2) (* (div (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 2) (* main_~Y~0 2))) (not (= (mod (+ (* v_main_~x~0_30 main_~Y~0) (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0) main_~X~0) 0)))) (<= v_main_~x~0_30 main_~X~0)))} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3474#(or (<= main_~x~0 main_~X~0) (and (or (= (+ main_~X~0 main_~v~0 (* (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) main_~x~0) 2)) (+ (* main_~Y~0 2) (* (div (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 2) (* 2 (* main_~Y~0 main_~x~0)))) (not (= (mod (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) main_~X~0) 0)) (= main_~X~0 0) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0))) (or (forall ((main_~y~0 Int)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ (* main_~y~0 2) (* main_~Y~0 2) (* 2 (* main_~Y~0 main_~x~0))))) (not (= main_~X~0 0)) (not (= (+ (div (+ main_~X~0 main_~v~0) (- 2)) main_~Y~0 (* main_~Y~0 main_~x~0)) 0)) (not (= (mod (+ main_~X~0 main_~v~0 (* (- 2) main_~Y~0 main_~x~0)) 2) 0)))))} is VALID [2022-04-07 12:57:46,692 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-07 12:57:48,046 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-07 12:57:48,046 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:48,046 INFO L290 TraceCheckUtils]: 40: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,046 INFO L290 TraceCheckUtils]: 39: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:48,046 INFO L290 TraceCheckUtils]: 38: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L272 TraceCheckUtils]: 37: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 36: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 35: Hoare triple {3248#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 34: Hoare triple {3248#true} assume ~v~0 < 0;~v~0 := ~v~0 + 2 * ~Y~0; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 33: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 31: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 30: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 29: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L272 TraceCheckUtils]: 28: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 27: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 26: Hoare triple {3248#true} #t~post7 := ~x~0;~x~0 := 1 + #t~post7;havoc #t~post7; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 25: Hoare triple {3248#true} assume !(~v~0 < 0);~v~0 := ~v~0 + 2 * (~Y~0 - ~X~0);#t~post6 := ~y~0;~y~0 := 1 + #t~post6;havoc #t~post6; {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L290 TraceCheckUtils]: 24: Hoare triple {3248#true} assume !!(~x~0 <= ~X~0); {3248#true} is VALID [2022-04-07 12:57:48,047 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {3248#true} {3248#true} #65#return; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 22: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 21: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 20: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L272 TraceCheckUtils]: 19: Hoare triple {3248#true} call __VERIFIER_assert((if 0 == 2 * ~yx~0 - 2 * ~xy~0 - ~X~0 + 2 * ~Y~0 - ~v~0 then 1 else 0)); {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 18: Hoare triple {3248#true} assume !false;~yx~0 := ~Y~0 * ~x~0;~xy~0 := ~X~0 * ~y~0; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 17: Hoare triple {3248#true} ~v~0 := 2 * ~Y~0 - ~X~0;~y~0 := 0;~x~0 := 0; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3248#true} {3248#true} #63#return; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 15: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 14: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 13: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:48,048 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-07 12:57:48,048 INFO L290 TraceCheckUtils]: 11: Hoare triple {3248#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~Y~0 := #t~nondet5;havoc #t~nondet5; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3248#true} {3248#true} #61#return; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 9: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,048 INFO L290 TraceCheckUtils]: 8: Hoare triple {3248#true} assume !(0 == ~cond); {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L290 TraceCheckUtils]: 7: Hoare triple {3248#true} ~cond := #in~cond; {3248#true} is VALID [2022-04-07 12:57:48,049 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-07 12:57:48,049 INFO L290 TraceCheckUtils]: 5: Hoare triple {3248#true} havoc ~X~0;havoc ~Y~0;havoc ~x~0;havoc ~y~0;havoc ~v~0;havoc ~xy~0;havoc ~yx~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~X~0 := #t~nondet4;havoc #t~nondet4; {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L272 TraceCheckUtils]: 4: Hoare triple {3248#true} call #t~ret8 := main(); {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3248#true} {3248#true} #69#return; {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L290 TraceCheckUtils]: 2: Hoare triple {3248#true} assume true; {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L290 TraceCheckUtils]: 1: Hoare triple {3248#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(15, 2);call #Ultimate.allocInit(12, 3); {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L272 TraceCheckUtils]: 0: Hoare triple {3248#true} call ULTIMATE.init(); {3248#true} is VALID [2022-04-07 12:57:48,049 INFO L134 CoverageAnalysis]: Checked inductivity of 60 backedges. 29 proven. 1 refuted. 0 times theorem prover too weak. 30 trivial. 0 not checked. [2022-04-07 12:57:48,049 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-07 12:57:48,049 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [841415723] [2022-04-07 12:57:48,050 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-07 12:57:48,050 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2046924266] [2022-04-07 12:57:48,050 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2046924266] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-07 12:57:48,050 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-07 12:57:48,050 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 13] total 25 [2022-04-07 12:57:48,050 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [583558446] [2022-04-07 12:57:48,050 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-07 12:57:48,051 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 57 [2022-04-07 12:57:48,051 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-07 12:57:48,051 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:56,150 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 62 inductive. 0 not inductive. 4 times theorem prover too weak to decide inductivity. [2022-04-07 12:57:56,151 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 25 states [2022-04-07 12:57:56,151 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-07 12:57:56,151 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 25 interpolants. [2022-04-07 12:57:56,151 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=488, Unknown=14, NotChecked=0, Total=600 [2022-04-07 12:57:56,152 INFO L87 Difference]: Start difference. First operand 56 states and 66 transitions. Second operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:57:59,281 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:58:14,907 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-07 12:58:30,390 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-07 12:58:30,491 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:58:30,491 INFO L93 Difference]: Finished difference Result 62 states and 74 transitions. [2022-04-07 12:58:30,491 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 23 states. [2022-04-07 12:58:30,491 INFO L78 Accepts]: Start accepts. Automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 57 [2022-04-07 12:58:30,491 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-07 12:58:30,491 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:58:30,492 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-07 12:58:30,493 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:58:30,494 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 45 transitions. [2022-04-07 12:58:30,494 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 23 states and 45 transitions. [2022-04-07 12:58:34,224 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-07 12:58:34,224 INFO L225 Difference]: With dead ends: 62 [2022-04-07 12:58:34,224 INFO L226 Difference]: Without dead ends: 0 [2022-04-07 12:58:34,225 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 90 SyntacticMatches, 1 SemanticMatches, 35 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 264 ImplicationChecksByTransitivity, 70.8s TimeCoverageRelationStatistics Valid=228, Invalid=1021, Unknown=15, NotChecked=68, Total=1332 [2022-04-07 12:58:34,225 INFO L913 BasicCegarLoop]: 15 mSDtfsCounter, 33 mSDsluCounter, 153 mSDsCounter, 0 mSdLazyCounter, 317 mSolverCounterSat, 15 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 5.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 35 SdHoareTripleChecker+Valid, 168 SdHoareTripleChecker+Invalid, 383 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 15 IncrementalHoareTripleChecker+Valid, 317 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 49 IncrementalHoareTripleChecker+Unchecked, 5.0s IncrementalHoareTripleChecker+Time [2022-04-07 12:58:34,225 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [35 Valid, 168 Invalid, 383 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [15 Valid, 317 Invalid, 2 Unknown, 49 Unchecked, 5.0s Time] [2022-04-07 12:58:34,226 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-04-07 12:58:34,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-04-07 12:58:34,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-07 12:58:34,226 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:58:34,226 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:58:34,226 INFO L87 Difference]: Start difference. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:58:34,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:58:34,226 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-07 12:58:34,226 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:58:34,226 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:58:34,226 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:58:34,226 INFO L74 IsIncluded]: Start isIncluded. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-07 12:58:34,226 INFO L87 Difference]: Start difference. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-07 12:58:34,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-07 12:58:34,227 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-07 12:58:34,227 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:58:34,227 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:58:34,227 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-07 12:58:34,227 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-07 12:58:34,227 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-07 12:58:34,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-07 12:58:34,227 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-04-07 12:58:34,227 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 57 [2022-04-07 12:58:34,227 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-07 12:58:34,227 INFO L478 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-04-07 12:58:34,227 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 25 states, 21 states have (on average 2.1904761904761907) internal successors, (46), 22 states have internal predecessors, (46), 7 states have call successors, (11), 2 states have call predecessors, (11), 3 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-07 12:58:34,227 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-07 12:58:34,228 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-07 12:58:34,229 INFO L788 garLoopResultBuilder]: Registering result SAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-04-07 12:58:34,236 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-04-07 12:58:34,430 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-07 12:58:34,431 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-04-07 12:59:03,591 WARN L232 SmtUtils]: Spent 29.05s on a formula simplification. DAG size of input: 114 DAG size of output: 38 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-07 12:59:11,591 WARN L232 SmtUtils]: Spent 7.98s on a formula simplification. DAG size of input: 134 DAG size of output: 45 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-07 12:59:13,862 INFO L882 garLoopResultBuilder]: For program point reach_errorEXIT(line 7) no Hoare annotation was computed. [2022-04-07 12:59:13,862 INFO L882 garLoopResultBuilder]: For program point reach_errorENTRY(line 7) no Hoare annotation was computed. [2022-04-07 12:59:13,862 INFO L882 garLoopResultBuilder]: For program point reach_errorFINAL(line 7) no Hoare annotation was computed. [2022-04-07 12:59:13,862 INFO L885 garLoopResultBuilder]: At program point assume_abort_if_notENTRY(lines 10 12) the Hoare annotation is: true [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L11(line 11) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L11-2(lines 10 12) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point assume_abort_if_notEXIT(lines 10 12) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L878 garLoopResultBuilder]: At program point L27(line 27) the Hoare annotation is: (and (<= 0 main_~X~0) (<= main_~X~0 50)) [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L27-1(line 27) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L885 garLoopResultBuilder]: At program point L25(line 25) the Hoare annotation is: true [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point mainEXIT(lines 21 53) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L25-1(line 25) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L878 garLoopResultBuilder]: At program point L50(line 50) the Hoare annotation is: (let ((.cse2 (* main_~y~0 2)) (.cse0 (* main_~Y~0 2)) (.cse1 (* 2 (* main_~Y~0 main_~x~0)))) (and (= (+ .cse0 .cse1) (+ (* (* main_~X~0 main_~y~0) 2) main_~X~0 main_~v~0)) (= (+ .cse2 .cse0 (* 2 main_~yx~0)) (+ (* 2 main_~xy~0) main_~X~0 main_~v~0)) (= (+ (* 2 (* main_~y~0 main_~x~0)) main_~X~0 main_~v~0) (+ .cse2 .cse0 .cse1)))) [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L50-1(line 50) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point mainFINAL(lines 21 53) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L40(lines 40 45) no Hoare annotation was computed. [2022-04-07 12:59:13,863 INFO L882 garLoopResultBuilder]: For program point L40-2(lines 40 45) no Hoare annotation was computed. [2022-04-07 12:59:13,863 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-07 12:59:13,864 INFO L885 garLoopResultBuilder]: At program point mainENTRY(lines 21 53) the Hoare annotation is: true [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point L32-3(lines 32 47) no Hoare annotation was computed. [2022-04-07 12:59:13,864 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-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point L35-1(lines 32 47) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L878 garLoopResultBuilder]: At program point ULTIMATE.initENTRY(line -1) the Hoare annotation is: (and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|)) [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L885 garLoopResultBuilder]: At program point L-1(line -1) the Hoare annotation is: true [2022-04-07 12:59:13,864 INFO L885 garLoopResultBuilder]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point L15(lines 15 16) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L885 garLoopResultBuilder]: At program point __VERIFIER_assertENTRY(lines 13 19) the Hoare annotation is: true [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point L14(lines 14 17) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point L14-2(lines 13 19) no Hoare annotation was computed. [2022-04-07 12:59:13,864 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertEXIT(lines 13 19) no Hoare annotation was computed. [2022-04-07 12:59:13,865 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 16) no Hoare annotation was computed. [2022-04-07 12:59:13,867 INFO L719 BasicCegarLoop]: Path program histogram: [3, 1, 1, 1, 1, 1] [2022-04-07 12:59:13,868 INFO L178 ceAbstractionStarter]: Computing trace abstraction results [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: reach_errorENTRY has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: reach_errorFINAL has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:59:13,870 WARN L170 areAnnotationChecker]: L11 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L11-2 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-04-07 12:59:13,871 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-07 12:59:13,872 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L14-2 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L27-1 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:59:13,873 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L32-3 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L40 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L35-1 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: L40-2 has no Hoare annotation [2022-04-07 12:59:13,876 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2022-04-07 12:59:13,876 INFO L163 areAnnotationChecker]: CFG has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2022-04-07 12:59:13,880 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,880 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,891 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,891 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,892 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 07.04 12:59:13 BoogieIcfgContainer [2022-04-07 12:59:13,892 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-04-07 12:59:13,893 INFO L158 Benchmark]: Toolchain (without parser) took 347855.71ms. Allocated memory was 197.1MB in the beginning and 245.4MB in the end (delta: 48.2MB). Free memory was 147.6MB in the beginning and 154.8MB in the end (delta: -7.2MB). Peak memory consumption was 119.3MB. Max. memory is 8.0GB. [2022-04-07 12:59:13,893 INFO L158 Benchmark]: CDTParser took 0.09ms. Allocated memory is still 197.1MB. Free memory is still 164.0MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-07 12:59:13,893 INFO L158 Benchmark]: CACSL2BoogieTranslator took 222.25ms. Allocated memory is still 197.1MB. Free memory was 147.4MB in the beginning and 171.8MB in the end (delta: -24.4MB). Peak memory consumption was 13.6MB. Max. memory is 8.0GB. [2022-04-07 12:59:13,893 INFO L158 Benchmark]: Boogie Preprocessor took 32.32ms. Allocated memory is still 197.1MB. Free memory was 171.8MB in the beginning and 170.3MB in the end (delta: 1.6MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. [2022-04-07 12:59:13,893 INFO L158 Benchmark]: RCFGBuilder took 274.33ms. Allocated memory is still 197.1MB. Free memory was 170.3MB in the beginning and 158.2MB in the end (delta: 12.1MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. [2022-04-07 12:59:13,894 INFO L158 Benchmark]: TraceAbstraction took 347321.27ms. Allocated memory was 197.1MB in the beginning and 245.4MB in the end (delta: 48.2MB). Free memory was 157.7MB in the beginning and 154.8MB in the end (delta: 2.9MB). Peak memory consumption was 129.8MB. Max. memory is 8.0GB. [2022-04-07 12:59:13,894 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 197.1MB. Free memory is still 164.0MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 222.25ms. Allocated memory is still 197.1MB. Free memory was 147.4MB in the beginning and 171.8MB in the end (delta: -24.4MB). Peak memory consumption was 13.6MB. Max. memory is 8.0GB. * Boogie Preprocessor took 32.32ms. Allocated memory is still 197.1MB. Free memory was 171.8MB in the beginning and 170.3MB in the end (delta: 1.6MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. * RCFGBuilder took 274.33ms. Allocated memory is still 197.1MB. Free memory was 170.3MB in the beginning and 158.2MB in the end (delta: 12.1MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. * TraceAbstraction took 347321.27ms. Allocated memory was 197.1MB in the beginning and 245.4MB in the end (delta: 48.2MB). Free memory was 157.7MB in the beginning and 154.8MB in the end (delta: 2.9MB). Peak memory consumption was 129.8MB. Max. memory is 8.0GB. * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] - GenericResult: Unfinished Backtranslation Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - PositiveResult [Line: 16]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - StatisticsResult: Ultimate Automizer benchmark data CFG has 6 procedures, 35 locations, 1 error locations. Started 1 CEGAR loops. OverallTime: 347.2s, OverallIterations: 8, TraceHistogramMax: 5, PathProgramHistogramMax: 3, EmptinessCheckTime: 0.0s, AutomataDifference: 60.1s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 39.4s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 8 mSolverCounterUnknown, 151 SdHoareTripleChecker+Valid, 18.1s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 143 mSDsluCounter, 1077 SdHoareTripleChecker+Invalid, 18.1s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 147 IncrementalHoareTripleChecker+Unchecked, 886 mSDsCounter, 95 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 1285 IncrementalHoareTripleChecker+Invalid, 1535 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 95 mSolverCounterUnsat, 191 mSDtfsCounter, 1285 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 8 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 634 GetRequests, 493 SyntacticMatches, 6 SemanticMatches, 135 ConstructedPredicates, 1 IntricatePredicates, 0 DeprecatedPredicates, 655 ImplicationChecksByTransitivity, 76.1s 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, 39.3s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 234.7s 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-07 12:59:13,898 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,898 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,898 WARN L418 cessorBacktranslator]: Identifier is quantified, using identity as back-translation of IdentifierExpression[main_~y~0,QUANTIFIED] [2022-04-07 12:59:13,898 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-07 12:59:14,052 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Ended with exit code 0 Received shutdown request...