/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/prodbin-ll_valuebound20.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-e106359-m [2022-04-14 17:26:29,603 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-14 17:26:29,604 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-14 17:26:29,632 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-14 17:26:29,633 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-14 17:26:29,633 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-14 17:26:29,635 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-14 17:26:29,637 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-14 17:26:29,638 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-14 17:26:29,638 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-14 17:26:29,639 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-14 17:26:29,640 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-14 17:26:29,640 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-14 17:26:29,640 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-14 17:26:29,641 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-14 17:26:29,642 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-14 17:26:29,642 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-14 17:26:29,643 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-14 17:26:29,644 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-14 17:26:29,649 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-14 17:26:29,654 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-14 17:26:29,654 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-14 17:26:29,655 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-14 17:26:29,656 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-14 17:26:29,656 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-14 17:26:29,658 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-14 17:26:29,658 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-14 17:26:29,661 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-14 17:26:29,662 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-14 17:26:29,662 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-14 17:26:29,663 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-14 17:26:29,663 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-14 17:26:29,664 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-14 17:26:29,664 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-14 17:26:29,665 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-14 17:26:29,665 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-14 17:26:29,665 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-14 17:26:29,666 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-14 17:26:29,666 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-14 17:26:29,666 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-14 17:26:29,667 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-14 17:26:29,667 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-14 17:26:29,668 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf [2022-04-14 17:26:29,684 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-14 17:26:29,685 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-14 17:26:29,685 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-04-14 17:26:29,685 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-04-14 17:26:29,685 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-04-14 17:26:29,686 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-04-14 17:26:29,686 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-04-14 17:26:29,686 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-04-14 17:26:29,686 INFO L138 SettingsManager]: * Use SBE=true [2022-04-14 17:26:29,686 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-14 17:26:29,686 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-14 17:26:29,686 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-14 17:26:29,687 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-14 17:26:29,688 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-14 17:26:29,688 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-14 17:26:29,688 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-14 17:26:29,688 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 17:26:29,688 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-14 17:26:29,688 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-04-14 17:26:29,695 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-04-14 17:26:29,695 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-04-14 17:26:29,695 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-04-14 17:26:29,696 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-04-14 17:26:29,696 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-04-14 17:26:29,696 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-14 17:26:29,696 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-14 17:26:29,866 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-14 17:26:29,879 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-14 17:26:29,880 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-14 17:26:29,881 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-14 17:26:29,884 INFO L275 PluginConnector]: CDTParser initialized [2022-04-14 17:26:29,884 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/nla-digbench-scaling/prodbin-ll_valuebound20.c [2022-04-14 17:26:29,925 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4ea77d295/141460e0c8c14222bdb3481c958c4815/FLAG98141b556 [2022-04-14 17:26:30,280 INFO L306 CDTParser]: Found 1 translation units. [2022-04-14 17:26:30,280 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/prodbin-ll_valuebound20.c [2022-04-14 17:26:30,288 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4ea77d295/141460e0c8c14222bdb3481c958c4815/FLAG98141b556 [2022-04-14 17:26:30,297 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/4ea77d295/141460e0c8c14222bdb3481c958c4815 [2022-04-14 17:26:30,299 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-14 17:26:30,300 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-14 17:26:30,301 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-14 17:26:30,301 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-14 17:26:30,303 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-14 17:26:30,306 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,307 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@2cacbf17 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30, skipping insertion in model container [2022-04-14 17:26:30,307 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,312 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-14 17:26:30,322 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-14 17:26:30,430 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/prodbin-ll_valuebound20.c[537,550] [2022-04-14 17:26:30,440 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 17:26:30,445 INFO L203 MainTranslator]: Completed pre-run [2022-04-14 17:26:30,453 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/prodbin-ll_valuebound20.c[537,550] [2022-04-14 17:26:30,457 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 17:26:30,466 INFO L208 MainTranslator]: Completed translation [2022-04-14 17:26:30,466 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30 WrapperNode [2022-04-14 17:26:30,466 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-14 17:26:30,467 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-14 17:26:30,467 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-14 17:26:30,467 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-14 17:26:30,473 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,473 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,477 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,477 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,481 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,483 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,484 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,485 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-14 17:26:30,486 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-14 17:26:30,486 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-14 17:26:30,486 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-14 17:26:30,486 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (1/1) ... [2022-04-14 17:26:30,493 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 17:26:30,500 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:26:30,509 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-14 17:26:30,515 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-14 17:26:30,546 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-14 17:26:30,546 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-14 17:26:30,546 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-14 17:26:30,547 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-14 17:26:30,548 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-14 17:26:30,548 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-14 17:26:30,549 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-14 17:26:30,551 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-14 17:26:30,589 INFO L234 CfgBuilder]: Building ICFG [2022-04-14 17:26:30,590 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-14 17:26:30,714 INFO L275 CfgBuilder]: Performing block encoding [2022-04-14 17:26:30,719 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-14 17:26:30,719 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-14 17:26:30,720 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 05:26:30 BoogieIcfgContainer [2022-04-14 17:26:30,720 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-14 17:26:30,721 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-14 17:26:30,721 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-14 17:26:30,724 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-14 17:26:30,724 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.04 05:26:30" (1/3) ... [2022-04-14 17:26:30,724 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@38939f68 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 05:26:30, skipping insertion in model container [2022-04-14 17:26:30,724 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 05:26:30" (2/3) ... [2022-04-14 17:26:30,725 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@38939f68 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 05:26:30, skipping insertion in model container [2022-04-14 17:26:30,725 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 05:26:30" (3/3) ... [2022-04-14 17:26:30,726 INFO L111 eAbstractionObserver]: Analyzing ICFG prodbin-ll_valuebound20.c [2022-04-14 17:26:30,729 INFO L202 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-04-14 17:26:30,729 INFO L161 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-14 17:26:30,757 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-14 17:26:30,761 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP [2022-04-14 17:26:30,761 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-14 17:26:30,780 INFO L276 IsEmpty]: Start isEmpty. Operand has 32 states, 19 states have (on average 1.368421052631579) internal successors, (26), 20 states have internal predecessors, (26), 7 states have call successors, (7), 4 states have call predecessors, (7), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-14 17:26:30,784 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-04-14 17:26:30,784 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:26:30,785 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:26:30,785 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:26:30,789 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:26:30,790 INFO L85 PathProgramCache]: Analyzing trace with hash -589322634, now seen corresponding path program 1 times [2022-04-14 17:26:30,795 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:26:30,796 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [441570605] [2022-04-14 17:26:30,796 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:30,796 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:26:30,880 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:30,933 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-14 17:26:30,936 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:30,947 INFO L290 TraceCheckUtils]: 0: Hoare triple {52#(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(13, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-14 17:26:30,947 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-14 17:26:30,948 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {35#true} {35#true} #71#return; {35#true} is VALID [2022-04-14 17:26:30,948 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-14 17:26:30,950 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:30,954 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,955 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,955 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,955 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-14 17:26:30,955 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-14 17:26:30,957 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:30,960 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,961 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,961 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,961 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-14 17:26:30,961 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-14 17:26:30,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:30,969 INFO L290 TraceCheckUtils]: 0: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,970 INFO L290 TraceCheckUtils]: 1: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,970 INFO L290 TraceCheckUtils]: 2: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,970 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {36#false} {36#false} #65#return; {36#false} is VALID [2022-04-14 17:26:30,971 INFO L272 TraceCheckUtils]: 0: Hoare triple {35#true} call ULTIMATE.init(); {52#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-14 17:26:30,971 INFO L290 TraceCheckUtils]: 1: Hoare triple {52#(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(13, 2);call #Ultimate.allocInit(12, 3); {35#true} is VALID [2022-04-14 17:26:30,972 INFO L290 TraceCheckUtils]: 2: Hoare triple {35#true} assume true; {35#true} is VALID [2022-04-14 17:26:30,972 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {35#true} {35#true} #71#return; {35#true} is VALID [2022-04-14 17:26:30,972 INFO L272 TraceCheckUtils]: 4: Hoare triple {35#true} call #t~ret6 := main(); {35#true} is VALID [2022-04-14 17:26:30,972 INFO L290 TraceCheckUtils]: 5: Hoare triple {35#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {35#true} is VALID [2022-04-14 17:26:30,972 INFO L272 TraceCheckUtils]: 6: Hoare triple {35#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {35#true} is VALID [2022-04-14 17:26:30,972 INFO L290 TraceCheckUtils]: 7: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,973 INFO L290 TraceCheckUtils]: 8: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,973 INFO L290 TraceCheckUtils]: 9: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,973 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {36#false} {35#true} #61#return; {36#false} is VALID [2022-04-14 17:26:30,973 INFO L290 TraceCheckUtils]: 11: Hoare triple {36#false} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {36#false} is VALID [2022-04-14 17:26:30,973 INFO L272 TraceCheckUtils]: 12: Hoare triple {36#false} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {35#true} is VALID [2022-04-14 17:26:30,974 INFO L290 TraceCheckUtils]: 13: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,974 INFO L290 TraceCheckUtils]: 14: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,974 INFO L290 TraceCheckUtils]: 15: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,974 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {36#false} {36#false} #63#return; {36#false} is VALID [2022-04-14 17:26:30,974 INFO L272 TraceCheckUtils]: 17: Hoare triple {36#false} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {35#true} is VALID [2022-04-14 17:26:30,975 INFO L290 TraceCheckUtils]: 18: Hoare triple {35#true} ~cond := #in~cond; {35#true} is VALID [2022-04-14 17:26:30,975 INFO L290 TraceCheckUtils]: 19: Hoare triple {35#true} assume 0 == ~cond;assume false; {36#false} is VALID [2022-04-14 17:26:30,975 INFO L290 TraceCheckUtils]: 20: Hoare triple {36#false} assume true; {36#false} is VALID [2022-04-14 17:26:30,975 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {36#false} {36#false} #65#return; {36#false} is VALID [2022-04-14 17:26:30,975 INFO L290 TraceCheckUtils]: 22: Hoare triple {36#false} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {36#false} is VALID [2022-04-14 17:26:30,976 INFO L290 TraceCheckUtils]: 23: Hoare triple {36#false} assume false; {36#false} is VALID [2022-04-14 17:26:30,976 INFO L272 TraceCheckUtils]: 24: Hoare triple {36#false} call __VERIFIER_assert((if ~z~0 == ~a~0 * ~b~0 then 1 else 0)); {36#false} is VALID [2022-04-14 17:26:30,976 INFO L290 TraceCheckUtils]: 25: Hoare triple {36#false} ~cond := #in~cond; {36#false} is VALID [2022-04-14 17:26:30,976 INFO L290 TraceCheckUtils]: 26: Hoare triple {36#false} assume 0 == ~cond; {36#false} is VALID [2022-04-14 17:26:30,976 INFO L290 TraceCheckUtils]: 27: Hoare triple {36#false} assume !false; {36#false} is VALID [2022-04-14 17:26:30,977 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-14 17:26:30,977 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:26:30,977 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [441570605] [2022-04-14 17:26:30,978 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [441570605] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 17:26:30,978 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 17:26:30,978 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-14 17:26:30,979 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1283445181] [2022-04-14 17:26:30,979 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 17:26:30,983 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 28 [2022-04-14 17:26:30,984 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:26:30,986 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 17:26:31,019 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:31,019 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-14 17:26:31,019 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:26:31,032 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-14 17:26:31,033 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-14 17:26:31,035 INFO L87 Difference]: Start difference. First operand has 32 states, 19 states have (on average 1.368421052631579) internal successors, (26), 20 states have internal predecessors, (26), 7 states have call successors, (7), 4 states have call predecessors, (7), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 17:26:31,144 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,144 INFO L93 Difference]: Finished difference Result 57 states and 77 transitions. [2022-04-14 17:26:31,144 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-14 17:26:31,145 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 28 [2022-04-14 17:26:31,145 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:26:31,146 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 17:26:31,156 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 77 transitions. [2022-04-14 17:26:31,156 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 17:26:31,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 77 transitions. [2022-04-14 17:26:31,160 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 77 transitions. [2022-04-14 17:26:31,238 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:31,252 INFO L225 Difference]: With dead ends: 57 [2022-04-14 17:26:31,253 INFO L226 Difference]: Without dead ends: 27 [2022-04-14 17:26:31,257 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 12 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-14 17:26:31,262 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 19 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 7 mSolverCounterSat, 6 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 24 SdHoareTripleChecker+Valid, 34 SdHoareTripleChecker+Invalid, 13 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 7 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 17:26:31,263 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [24 Valid, 34 Invalid, 13 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 7 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 17:26:31,274 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2022-04-14 17:26:31,298 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 27. [2022-04-14 17:26:31,299 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:26:31,299 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-14 17:26:31,300 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-14 17:26:31,300 INFO L87 Difference]: Start difference. First operand 27 states. Second operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-14 17:26:31,303 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,303 INFO L93 Difference]: Finished difference Result 27 states and 31 transitions. [2022-04-14 17:26:31,303 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 31 transitions. [2022-04-14 17:26:31,303 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:31,304 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:31,307 INFO L74 IsIncluded]: Start isIncluded. First operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 27 states. [2022-04-14 17:26:31,308 INFO L87 Difference]: Start difference. First operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) Second operand 27 states. [2022-04-14 17:26:31,312 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,312 INFO L93 Difference]: Finished difference Result 27 states and 31 transitions. [2022-04-14 17:26:31,313 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 31 transitions. [2022-04-14 17:26:31,313 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:31,313 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:31,313 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:26:31,313 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:26:31,314 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 27 states, 16 states have (on average 1.1875) internal successors, (19), 17 states have internal predecessors, (19), 7 states have call successors, (7), 4 states have call predecessors, (7), 3 states have return successors, (5), 5 states have call predecessors, (5), 5 states have call successors, (5) [2022-04-14 17:26:31,321 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 31 transitions. [2022-04-14 17:26:31,323 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 31 transitions. Word has length 28 [2022-04-14 17:26:31,323 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:26:31,323 INFO L478 AbstractCegarLoop]: Abstraction has 27 states and 31 transitions. [2022-04-14 17:26:31,323 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, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 17:26:31,323 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 31 transitions. [2022-04-14 17:26:31,324 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-04-14 17:26:31,324 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:26:31,324 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:26:31,324 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-14 17:26:31,325 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:26:31,325 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:26:31,325 INFO L85 PathProgramCache]: Analyzing trace with hash -1736242504, now seen corresponding path program 1 times [2022-04-14 17:26:31,325 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:26:31,326 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2116431595] [2022-04-14 17:26:31,326 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:31,326 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:26:31,361 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:26:31,361 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [166577941] [2022-04-14 17:26:31,362 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:31,362 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:26:31,362 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:26:31,363 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:26:31,399 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-14 17:26:31,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:31,431 INFO L263 TraceCheckSpWp]: Trace formula consists of 90 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-14 17:26:31,440 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:31,443 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:26:31,628 INFO L272 TraceCheckUtils]: 0: Hoare triple {224#true} call ULTIMATE.init(); {224#true} is VALID [2022-04-14 17:26:31,628 INFO L290 TraceCheckUtils]: 1: Hoare triple {224#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(13, 2);call #Ultimate.allocInit(12, 3); {224#true} is VALID [2022-04-14 17:26:31,628 INFO L290 TraceCheckUtils]: 2: Hoare triple {224#true} assume true; {224#true} is VALID [2022-04-14 17:26:31,629 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {224#true} {224#true} #71#return; {224#true} is VALID [2022-04-14 17:26:31,629 INFO L272 TraceCheckUtils]: 4: Hoare triple {224#true} call #t~ret6 := main(); {224#true} is VALID [2022-04-14 17:26:31,632 INFO L290 TraceCheckUtils]: 5: Hoare triple {224#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {224#true} is VALID [2022-04-14 17:26:31,633 INFO L272 TraceCheckUtils]: 6: Hoare triple {224#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {224#true} is VALID [2022-04-14 17:26:31,633 INFO L290 TraceCheckUtils]: 7: Hoare triple {224#true} ~cond := #in~cond; {224#true} is VALID [2022-04-14 17:26:31,633 INFO L290 TraceCheckUtils]: 8: Hoare triple {224#true} assume !(0 == ~cond); {224#true} is VALID [2022-04-14 17:26:31,634 INFO L290 TraceCheckUtils]: 9: Hoare triple {224#true} assume true; {224#true} is VALID [2022-04-14 17:26:31,634 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {224#true} {224#true} #61#return; {224#true} is VALID [2022-04-14 17:26:31,634 INFO L290 TraceCheckUtils]: 11: Hoare triple {224#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {224#true} is VALID [2022-04-14 17:26:31,634 INFO L272 TraceCheckUtils]: 12: Hoare triple {224#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {224#true} is VALID [2022-04-14 17:26:31,634 INFO L290 TraceCheckUtils]: 13: Hoare triple {224#true} ~cond := #in~cond; {224#true} is VALID [2022-04-14 17:26:31,635 INFO L290 TraceCheckUtils]: 14: Hoare triple {224#true} assume !(0 == ~cond); {224#true} is VALID [2022-04-14 17:26:31,635 INFO L290 TraceCheckUtils]: 15: Hoare triple {224#true} assume true; {224#true} is VALID [2022-04-14 17:26:31,635 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {224#true} {224#true} #63#return; {224#true} is VALID [2022-04-14 17:26:31,635 INFO L272 TraceCheckUtils]: 17: Hoare triple {224#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {224#true} is VALID [2022-04-14 17:26:31,635 INFO L290 TraceCheckUtils]: 18: Hoare triple {224#true} ~cond := #in~cond; {224#true} is VALID [2022-04-14 17:26:31,635 INFO L290 TraceCheckUtils]: 19: Hoare triple {224#true} assume !(0 == ~cond); {224#true} is VALID [2022-04-14 17:26:31,635 INFO L290 TraceCheckUtils]: 20: Hoare triple {224#true} assume true; {224#true} is VALID [2022-04-14 17:26:31,635 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {224#true} {224#true} #65#return; {224#true} is VALID [2022-04-14 17:26:31,636 INFO L290 TraceCheckUtils]: 22: Hoare triple {224#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {295#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:31,637 INFO L290 TraceCheckUtils]: 23: Hoare triple {295#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume !false; {295#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:31,638 INFO L272 TraceCheckUtils]: 24: Hoare triple {295#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {302#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:26:31,639 INFO L290 TraceCheckUtils]: 25: Hoare triple {302#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {306#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:26:31,640 INFO L290 TraceCheckUtils]: 26: Hoare triple {306#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {225#false} is VALID [2022-04-14 17:26:31,640 INFO L290 TraceCheckUtils]: 27: Hoare triple {225#false} assume !false; {225#false} is VALID [2022-04-14 17:26:31,640 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-14 17:26:31,640 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 17:26:31,640 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:26:31,641 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2116431595] [2022-04-14 17:26:31,641 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:26:31,641 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [166577941] [2022-04-14 17:26:31,644 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [166577941] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 17:26:31,644 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 17:26:31,644 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-14 17:26:31,645 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2078225774] [2022-04-14 17:26:31,646 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 17:26:31,647 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 28 [2022-04-14 17:26:31,647 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:26:31,648 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-14 17:26:31,663 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:31,664 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-14 17:26:31,665 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:26:31,665 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-14 17:26:31,665 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-04-14 17:26:31,666 INFO L87 Difference]: Start difference. First operand 27 states and 31 transitions. Second operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-14 17:26:31,794 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,794 INFO L93 Difference]: Finished difference Result 39 states and 45 transitions. [2022-04-14 17:26:31,794 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 17:26:31,795 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 28 [2022-04-14 17:26:31,795 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:26:31,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-14 17:26:31,796 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2022-04-14 17:26:31,796 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-14 17:26:31,798 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2022-04-14 17:26:31,798 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2022-04-14 17:26:31,827 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:31,828 INFO L225 Difference]: With dead ends: 39 [2022-04-14 17:26:31,828 INFO L226 Difference]: Without dead ends: 37 [2022-04-14 17:26:31,828 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 28 GetRequests, 24 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2022-04-14 17:26:31,829 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 8 mSDsluCounter, 62 mSDsCounter, 0 mSdLazyCounter, 43 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 9 SdHoareTripleChecker+Valid, 87 SdHoareTripleChecker+Invalid, 43 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 43 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 17:26:31,830 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [9 Valid, 87 Invalid, 43 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 43 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 17:26:31,830 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2022-04-14 17:26:31,834 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 33. [2022-04-14 17:26:31,834 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:26:31,834 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:31,834 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:31,835 INFO L87 Difference]: Start difference. First operand 37 states. Second operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:31,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,837 INFO L93 Difference]: Finished difference Result 37 states and 43 transitions. [2022-04-14 17:26:31,837 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 43 transitions. [2022-04-14 17:26:31,837 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:31,837 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:31,837 INFO L74 IsIncluded]: Start isIncluded. First operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) Second operand 37 states. [2022-04-14 17:26:31,838 INFO L87 Difference]: Start difference. First operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) Second operand 37 states. [2022-04-14 17:26:31,839 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:31,839 INFO L93 Difference]: Finished difference Result 37 states and 43 transitions. [2022-04-14 17:26:31,839 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 43 transitions. [2022-04-14 17:26:31,840 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:31,840 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:31,840 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:26:31,840 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:26:31,840 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 33 states, 20 states have (on average 1.15) internal successors, (23), 22 states have internal predecessors, (23), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 5 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:31,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 37 transitions. [2022-04-14 17:26:31,842 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 37 transitions. Word has length 28 [2022-04-14 17:26:31,842 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:26:31,842 INFO L478 AbstractCegarLoop]: Abstraction has 33 states and 37 transitions. [2022-04-14 17:26:31,842 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-14 17:26:31,842 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 37 transitions. [2022-04-14 17:26:31,843 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-04-14 17:26:31,843 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:26:31,843 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:26:31,863 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-14 17:26:32,059 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:26:32,060 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:26:32,060 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:26:32,060 INFO L85 PathProgramCache]: Analyzing trace with hash 1911690432, now seen corresponding path program 1 times [2022-04-14 17:26:32,060 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:26:32,061 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1178086627] [2022-04-14 17:26:32,061 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:32,061 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:26:32,077 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:26:32,077 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1759366395] [2022-04-14 17:26:32,077 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:32,077 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:26:32,077 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:26:32,078 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:26:32,096 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-14 17:26:32,121 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:32,121 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 7 conjunts are in the unsatisfiable core [2022-04-14 17:26:32,129 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:32,130 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:26:32,259 INFO L272 TraceCheckUtils]: 0: Hoare triple {491#true} call ULTIMATE.init(); {491#true} is VALID [2022-04-14 17:26:32,259 INFO L290 TraceCheckUtils]: 1: Hoare triple {491#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(13, 2);call #Ultimate.allocInit(12, 3); {491#true} is VALID [2022-04-14 17:26:32,260 INFO L290 TraceCheckUtils]: 2: Hoare triple {491#true} assume true; {491#true} is VALID [2022-04-14 17:26:32,260 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {491#true} {491#true} #71#return; {491#true} is VALID [2022-04-14 17:26:32,260 INFO L272 TraceCheckUtils]: 4: Hoare triple {491#true} call #t~ret6 := main(); {491#true} is VALID [2022-04-14 17:26:32,260 INFO L290 TraceCheckUtils]: 5: Hoare triple {491#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {491#true} is VALID [2022-04-14 17:26:32,260 INFO L272 TraceCheckUtils]: 6: Hoare triple {491#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {491#true} is VALID [2022-04-14 17:26:32,260 INFO L290 TraceCheckUtils]: 7: Hoare triple {491#true} ~cond := #in~cond; {491#true} is VALID [2022-04-14 17:26:32,261 INFO L290 TraceCheckUtils]: 8: Hoare triple {491#true} assume !(0 == ~cond); {491#true} is VALID [2022-04-14 17:26:32,261 INFO L290 TraceCheckUtils]: 9: Hoare triple {491#true} assume true; {491#true} is VALID [2022-04-14 17:26:32,261 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {491#true} {491#true} #61#return; {491#true} is VALID [2022-04-14 17:26:32,261 INFO L290 TraceCheckUtils]: 11: Hoare triple {491#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {491#true} is VALID [2022-04-14 17:26:32,261 INFO L272 TraceCheckUtils]: 12: Hoare triple {491#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {491#true} is VALID [2022-04-14 17:26:32,262 INFO L290 TraceCheckUtils]: 13: Hoare triple {491#true} ~cond := #in~cond; {491#true} is VALID [2022-04-14 17:26:32,262 INFO L290 TraceCheckUtils]: 14: Hoare triple {491#true} assume !(0 == ~cond); {491#true} is VALID [2022-04-14 17:26:32,262 INFO L290 TraceCheckUtils]: 15: Hoare triple {491#true} assume true; {491#true} is VALID [2022-04-14 17:26:32,263 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {491#true} {491#true} #63#return; {491#true} is VALID [2022-04-14 17:26:32,263 INFO L272 TraceCheckUtils]: 17: Hoare triple {491#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {491#true} is VALID [2022-04-14 17:26:32,291 INFO L290 TraceCheckUtils]: 18: Hoare triple {491#true} ~cond := #in~cond; {550#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-14 17:26:32,292 INFO L290 TraceCheckUtils]: 19: Hoare triple {550#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {554#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:26:32,293 INFO L290 TraceCheckUtils]: 20: Hoare triple {554#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {554#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:26:32,294 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {554#(not (= |assume_abort_if_not_#in~cond| 0))} {491#true} #65#return; {561#(<= 1 main_~b~0)} is VALID [2022-04-14 17:26:32,294 INFO L290 TraceCheckUtils]: 22: Hoare triple {561#(<= 1 main_~b~0)} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {565#(<= 1 main_~y~0)} is VALID [2022-04-14 17:26:32,294 INFO L290 TraceCheckUtils]: 23: Hoare triple {565#(<= 1 main_~y~0)} assume !false; {565#(<= 1 main_~y~0)} is VALID [2022-04-14 17:26:32,295 INFO L272 TraceCheckUtils]: 24: Hoare triple {565#(<= 1 main_~y~0)} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {491#true} is VALID [2022-04-14 17:26:32,295 INFO L290 TraceCheckUtils]: 25: Hoare triple {491#true} ~cond := #in~cond; {491#true} is VALID [2022-04-14 17:26:32,295 INFO L290 TraceCheckUtils]: 26: Hoare triple {491#true} assume !(0 == ~cond); {491#true} is VALID [2022-04-14 17:26:32,295 INFO L290 TraceCheckUtils]: 27: Hoare triple {491#true} assume true; {491#true} is VALID [2022-04-14 17:26:32,296 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {491#true} {565#(<= 1 main_~y~0)} #67#return; {565#(<= 1 main_~y~0)} is VALID [2022-04-14 17:26:32,296 INFO L290 TraceCheckUtils]: 29: Hoare triple {565#(<= 1 main_~y~0)} assume !(0 != ~y~0); {492#false} is VALID [2022-04-14 17:26:32,298 INFO L272 TraceCheckUtils]: 30: Hoare triple {492#false} call __VERIFIER_assert((if ~z~0 == ~a~0 * ~b~0 then 1 else 0)); {492#false} is VALID [2022-04-14 17:26:32,298 INFO L290 TraceCheckUtils]: 31: Hoare triple {492#false} ~cond := #in~cond; {492#false} is VALID [2022-04-14 17:26:32,298 INFO L290 TraceCheckUtils]: 32: Hoare triple {492#false} assume 0 == ~cond; {492#false} is VALID [2022-04-14 17:26:32,298 INFO L290 TraceCheckUtils]: 33: Hoare triple {492#false} assume !false; {492#false} is VALID [2022-04-14 17:26:32,299 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 8 proven. 0 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-14 17:26:32,299 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 17:26:32,299 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:26:32,301 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1178086627] [2022-04-14 17:26:32,301 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:26:32,301 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1759366395] [2022-04-14 17:26:32,301 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1759366395] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 17:26:32,301 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 17:26:32,301 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-14 17:26:32,301 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1453724590] [2022-04-14 17:26:32,301 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 17:26:32,302 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 34 [2022-04-14 17:26:32,302 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:26:32,302 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:26:32,322 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:32,323 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-14 17:26:32,323 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:26:32,323 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-14 17:26:32,323 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-14 17:26:32,323 INFO L87 Difference]: Start difference. First operand 33 states and 37 transitions. Second operand has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:26:32,474 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:32,474 INFO L93 Difference]: Finished difference Result 43 states and 48 transitions. [2022-04-14 17:26:32,474 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-04-14 17:26:32,474 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) Word has length 34 [2022-04-14 17:26:32,476 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:26:32,476 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:26:32,478 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 45 transitions. [2022-04-14 17:26:32,479 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:26:32,482 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 45 transitions. [2022-04-14 17:26:32,482 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 6 states and 45 transitions. [2022-04-14 17:26:32,511 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:26:32,512 INFO L225 Difference]: With dead ends: 43 [2022-04-14 17:26:32,512 INFO L226 Difference]: Without dead ends: 36 [2022-04-14 17:26:32,513 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 29 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-14 17:26:32,514 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 14 mSDsluCounter, 65 mSDsCounter, 0 mSdLazyCounter, 58 mSolverCounterSat, 2 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 15 SdHoareTripleChecker+Valid, 89 SdHoareTripleChecker+Invalid, 60 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 58 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 17:26:32,514 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [15 Valid, 89 Invalid, 60 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 58 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 17:26:32,516 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2022-04-14 17:26:32,525 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 34. [2022-04-14 17:26:32,526 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:26:32,526 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:32,528 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:32,528 INFO L87 Difference]: Start difference. First operand 36 states. Second operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:32,532 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:32,532 INFO L93 Difference]: Finished difference Result 36 states and 41 transitions. [2022-04-14 17:26:32,532 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 41 transitions. [2022-04-14 17:26:32,532 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:32,532 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:32,533 INFO L74 IsIncluded]: Start isIncluded. First operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 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 36 states. [2022-04-14 17:26:32,534 INFO L87 Difference]: Start difference. First operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 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 36 states. [2022-04-14 17:26:32,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:26:32,541 INFO L93 Difference]: Finished difference Result 36 states and 41 transitions. [2022-04-14 17:26:32,542 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 41 transitions. [2022-04-14 17:26:32,545 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:26:32,546 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:26:32,546 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:26:32,546 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:26:32,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 21 states have (on average 1.1428571428571428) internal successors, (24), 22 states have internal predecessors, (24), 8 states have call successors, (8), 5 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-14 17:26:32,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 38 transitions. [2022-04-14 17:26:32,550 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 38 transitions. Word has length 34 [2022-04-14 17:26:32,550 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:26:32,551 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 38 transitions. [2022-04-14 17:26:32,551 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 3.1666666666666665) internal successors, (19), 5 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 3 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:26:32,551 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 38 transitions. [2022-04-14 17:26:32,551 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2022-04-14 17:26:32,551 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:26:32,553 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:26:32,569 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-04-14 17:26:32,763 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-14 17:26:32,764 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:26:32,764 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:26:32,764 INFO L85 PathProgramCache]: Analyzing trace with hash 2022075506, now seen corresponding path program 1 times [2022-04-14 17:26:32,764 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:26:32,764 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [438943464] [2022-04-14 17:26:32,764 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:32,764 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:26:32,777 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:26:32,778 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1476307667] [2022-04-14 17:26:32,778 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:26:32,778 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:26:32,778 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:26:32,779 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:26:32,780 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-14 17:26:32,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:32,821 INFO L263 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 23 conjunts are in the unsatisfiable core [2022-04-14 17:26:32,833 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:26:32,834 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:26:37,257 INFO L272 TraceCheckUtils]: 0: Hoare triple {783#true} call ULTIMATE.init(); {783#true} is VALID [2022-04-14 17:26:37,257 INFO L290 TraceCheckUtils]: 1: Hoare triple {783#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(13, 2);call #Ultimate.allocInit(12, 3); {783#true} is VALID [2022-04-14 17:26:37,258 INFO L290 TraceCheckUtils]: 2: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:26:37,258 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {783#true} {783#true} #71#return; {783#true} is VALID [2022-04-14 17:26:37,258 INFO L272 TraceCheckUtils]: 4: Hoare triple {783#true} call #t~ret6 := main(); {783#true} is VALID [2022-04-14 17:26:37,258 INFO L290 TraceCheckUtils]: 5: Hoare triple {783#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {783#true} is VALID [2022-04-14 17:26:37,258 INFO L272 TraceCheckUtils]: 6: Hoare triple {783#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {783#true} is VALID [2022-04-14 17:26:37,258 INFO L290 TraceCheckUtils]: 7: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:26:37,258 INFO L290 TraceCheckUtils]: 8: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:26:37,260 INFO L290 TraceCheckUtils]: 9: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:26:37,260 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {783#true} {783#true} #61#return; {783#true} is VALID [2022-04-14 17:26:37,260 INFO L290 TraceCheckUtils]: 11: Hoare triple {783#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {783#true} is VALID [2022-04-14 17:26:37,261 INFO L272 TraceCheckUtils]: 12: Hoare triple {783#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {783#true} is VALID [2022-04-14 17:26:37,261 INFO L290 TraceCheckUtils]: 13: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:26:37,270 INFO L290 TraceCheckUtils]: 14: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:26:37,271 INFO L290 TraceCheckUtils]: 15: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:26:37,271 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {783#true} {783#true} #63#return; {783#true} is VALID [2022-04-14 17:26:37,271 INFO L272 TraceCheckUtils]: 17: Hoare triple {783#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {783#true} is VALID [2022-04-14 17:26:37,271 INFO L290 TraceCheckUtils]: 18: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:26:37,271 INFO L290 TraceCheckUtils]: 19: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:26:37,271 INFO L290 TraceCheckUtils]: 20: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:26:37,272 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {783#true} {783#true} #65#return; {783#true} is VALID [2022-04-14 17:26:37,272 INFO L290 TraceCheckUtils]: 22: Hoare triple {783#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:37,273 INFO L290 TraceCheckUtils]: 23: Hoare triple {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume !false; {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:37,273 INFO L272 TraceCheckUtils]: 24: Hoare triple {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {783#true} is VALID [2022-04-14 17:26:37,273 INFO L290 TraceCheckUtils]: 25: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:26:37,273 INFO L290 TraceCheckUtils]: 26: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:26:37,273 INFO L290 TraceCheckUtils]: 27: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:26:37,273 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {783#true} {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} #67#return; {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:37,274 INFO L290 TraceCheckUtils]: 29: Hoare triple {854#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume !!(0 != ~y~0); {876#(and (= main_~z~0 0) (not (= main_~y~0 0)) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:26:37,275 INFO L290 TraceCheckUtils]: 30: Hoare triple {876#(and (= main_~z~0 0) (not (= main_~y~0 0)) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {880#(and (<= 1 (mod (+ main_~y~0 1) 2)) (= main_~b~0 (+ main_~y~0 1)) (= main_~z~0 main_~x~0) (= main_~a~0 main_~x~0) (<= 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:26:37,276 INFO L290 TraceCheckUtils]: 31: Hoare triple {880#(and (<= 1 (mod (+ main_~y~0 1) 2)) (= main_~b~0 (+ main_~y~0 1)) (= main_~z~0 main_~x~0) (= main_~a~0 main_~x~0) (<= 0 (+ main_~y~0 1)))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {884#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:26:37,277 INFO L290 TraceCheckUtils]: 32: Hoare triple {884#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} assume !false; {884#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:26:39,284 WARN L272 TraceCheckUtils]: 33: Hoare triple {884#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {891#(<= 1 |__VERIFIER_assert_#in~cond|)} is UNKNOWN [2022-04-14 17:26:39,286 INFO L290 TraceCheckUtils]: 34: Hoare triple {891#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {895#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:26:39,289 INFO L290 TraceCheckUtils]: 35: Hoare triple {895#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {784#false} is VALID [2022-04-14 17:26:39,290 INFO L290 TraceCheckUtils]: 36: Hoare triple {784#false} assume !false; {784#false} is VALID [2022-04-14 17:26:39,290 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-14 17:26:39,290 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 17:27:06,703 INFO L290 TraceCheckUtils]: 36: Hoare triple {784#false} assume !false; {784#false} is VALID [2022-04-14 17:27:06,704 INFO L290 TraceCheckUtils]: 35: Hoare triple {895#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {784#false} is VALID [2022-04-14 17:27:06,704 INFO L290 TraceCheckUtils]: 34: Hoare triple {891#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {895#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:06,705 INFO L272 TraceCheckUtils]: 33: Hoare triple {911#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {891#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:27:06,705 INFO L290 TraceCheckUtils]: 32: Hoare triple {911#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} assume !false; {911#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:27:06,710 INFO L290 TraceCheckUtils]: 31: Hoare triple {918#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {911#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:27:06,712 INFO L290 TraceCheckUtils]: 30: Hoare triple {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {918#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} is VALID [2022-04-14 17:27:06,713 INFO L290 TraceCheckUtils]: 29: Hoare triple {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} assume !!(0 != ~y~0); {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} is VALID [2022-04-14 17:27:06,714 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {783#true} {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} #67#return; {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} is VALID [2022-04-14 17:27:06,714 INFO L290 TraceCheckUtils]: 27: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:27:06,714 INFO L290 TraceCheckUtils]: 26: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:27:06,714 INFO L290 TraceCheckUtils]: 25: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:27:06,714 INFO L272 TraceCheckUtils]: 24: Hoare triple {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {783#true} is VALID [2022-04-14 17:27:06,715 INFO L290 TraceCheckUtils]: 23: Hoare triple {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} assume !false; {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} is VALID [2022-04-14 17:27:07,049 INFO L290 TraceCheckUtils]: 22: Hoare triple {783#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {922#(or (= (+ (* (* main_~x~0 2) (div (+ (- 1) main_~y~0) 2)) main_~z~0 main_~x~0) (* main_~b~0 main_~a~0)) (not (<= 1 (mod main_~y~0 2))) (< main_~y~0 0))} is VALID [2022-04-14 17:27:07,049 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {783#true} {783#true} #65#return; {783#true} is VALID [2022-04-14 17:27:07,049 INFO L290 TraceCheckUtils]: 20: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:27:07,049 INFO L290 TraceCheckUtils]: 19: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:27:07,049 INFO L290 TraceCheckUtils]: 18: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:27:07,049 INFO L272 TraceCheckUtils]: 17: Hoare triple {783#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {783#true} is VALID [2022-04-14 17:27:07,050 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {783#true} {783#true} #63#return; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 15: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 14: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 13: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L272 TraceCheckUtils]: 12: Hoare triple {783#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 11: Hoare triple {783#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {783#true} {783#true} #61#return; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 9: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 8: Hoare triple {783#true} assume !(0 == ~cond); {783#true} is VALID [2022-04-14 17:27:07,050 INFO L290 TraceCheckUtils]: 7: Hoare triple {783#true} ~cond := #in~cond; {783#true} is VALID [2022-04-14 17:27:07,051 INFO L272 TraceCheckUtils]: 6: Hoare triple {783#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {783#true} is VALID [2022-04-14 17:27:07,051 INFO L290 TraceCheckUtils]: 5: Hoare triple {783#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {783#true} is VALID [2022-04-14 17:27:07,051 INFO L272 TraceCheckUtils]: 4: Hoare triple {783#true} call #t~ret6 := main(); {783#true} is VALID [2022-04-14 17:27:07,051 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {783#true} {783#true} #71#return; {783#true} is VALID [2022-04-14 17:27:07,051 INFO L290 TraceCheckUtils]: 2: Hoare triple {783#true} assume true; {783#true} is VALID [2022-04-14 17:27:07,051 INFO L290 TraceCheckUtils]: 1: Hoare triple {783#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(13, 2);call #Ultimate.allocInit(12, 3); {783#true} is VALID [2022-04-14 17:27:07,051 INFO L272 TraceCheckUtils]: 0: Hoare triple {783#true} call ULTIMATE.init(); {783#true} is VALID [2022-04-14 17:27:07,051 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-14 17:27:07,051 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:27:07,052 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [438943464] [2022-04-14 17:27:07,052 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:27:07,052 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1476307667] [2022-04-14 17:27:07,052 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1476307667] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-14 17:27:07,052 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-14 17:27:07,052 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [8] total 11 [2022-04-14 17:27:07,052 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1090631341] [2022-04-14 17:27:07,052 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 17:27:07,053 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Word has length 37 [2022-04-14 17:27:07,053 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:27:07,053 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:27:07,424 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:27:07,424 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-14 17:27:07,425 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:27:07,425 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-14 17:27:07,425 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=29, Invalid=80, Unknown=1, NotChecked=0, Total=110 [2022-04-14 17:27:07,425 INFO L87 Difference]: Start difference. First operand 34 states and 38 transitions. Second operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:27:08,794 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:08,795 INFO L93 Difference]: Finished difference Result 47 states and 53 transitions. [2022-04-14 17:27:08,795 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-14 17:27:08,795 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Word has length 37 [2022-04-14 17:27:08,795 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:27:08,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:27:08,796 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2022-04-14 17:27:08,796 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:27:08,797 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2022-04-14 17:27:08,797 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2022-04-14 17:27:08,833 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:27:08,834 INFO L225 Difference]: With dead ends: 47 [2022-04-14 17:27:08,834 INFO L226 Difference]: Without dead ends: 45 [2022-04-14 17:27:08,835 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 75 GetRequests, 62 SyntacticMatches, 2 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 7.5s TimeCoverageRelationStatistics Valid=39, Invalid=116, Unknown=1, NotChecked=0, Total=156 [2022-04-14 17:27:08,835 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 8 mSDsluCounter, 92 mSDsCounter, 0 mSdLazyCounter, 69 mSolverCounterSat, 7 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.3s Time, 0 mProtectedPredicate, 0 mProtectedAction, 9 SdHoareTripleChecker+Valid, 116 SdHoareTripleChecker+Invalid, 76 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Valid, 69 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.3s IncrementalHoareTripleChecker+Time [2022-04-14 17:27:08,835 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [9 Valid, 116 Invalid, 76 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [7 Valid, 69 Invalid, 0 Unknown, 0 Unchecked, 0.3s Time] [2022-04-14 17:27:08,836 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2022-04-14 17:27:08,845 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 43. [2022-04-14 17:27:08,845 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:27:08,845 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-14 17:27:08,845 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-14 17:27:08,846 INFO L87 Difference]: Start difference. First operand 45 states. Second operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-14 17:27:08,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:08,847 INFO L93 Difference]: Finished difference Result 45 states and 51 transitions. [2022-04-14 17:27:08,847 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 51 transitions. [2022-04-14 17:27:08,847 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:27:08,847 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:27:08,848 INFO L74 IsIncluded]: Start isIncluded. First operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand 45 states. [2022-04-14 17:27:08,848 INFO L87 Difference]: Start difference. First operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand 45 states. [2022-04-14 17:27:08,849 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:08,849 INFO L93 Difference]: Finished difference Result 45 states and 51 transitions. [2022-04-14 17:27:08,849 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 51 transitions. [2022-04-14 17:27:08,849 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:27:08,850 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:27:08,850 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:27:08,850 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:27:08,850 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 43 states, 28 states have (on average 1.1785714285714286) internal successors, (33), 29 states have internal predecessors, (33), 9 states have call successors, (9), 6 states have call predecessors, (9), 5 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-14 17:27:08,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 49 transitions. [2022-04-14 17:27:08,851 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 49 transitions. Word has length 37 [2022-04-14 17:27:08,851 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:27:08,851 INFO L478 AbstractCegarLoop]: Abstraction has 43 states and 49 transitions. [2022-04-14 17:27:08,851 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-14 17:27:08,851 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 49 transitions. [2022-04-14 17:27:08,852 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2022-04-14 17:27:08,852 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:27:08,852 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:27:08,873 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-14 17:27:09,052 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:27:09,053 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:27:09,053 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:27:09,053 INFO L85 PathProgramCache]: Analyzing trace with hash -497884428, now seen corresponding path program 1 times [2022-04-14 17:27:09,053 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:27:09,053 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [569271398] [2022-04-14 17:27:09,053 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:27:09,054 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:27:09,066 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:27:09,066 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1672409684] [2022-04-14 17:27:09,067 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:27:09,067 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:27:09,067 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:27:09,070 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:27:09,071 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-14 17:27:09,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:27:09,116 INFO L263 TraceCheckSpWp]: Trace formula consists of 106 conjuncts, 28 conjunts are in the unsatisfiable core [2022-04-14 17:27:09,140 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:27:09,141 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:27:11,040 INFO L272 TraceCheckUtils]: 0: Hoare triple {1236#true} call ULTIMATE.init(); {1236#true} is VALID [2022-04-14 17:27:11,040 INFO L290 TraceCheckUtils]: 1: Hoare triple {1236#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(13, 2);call #Ultimate.allocInit(12, 3); {1236#true} is VALID [2022-04-14 17:27:11,040 INFO L290 TraceCheckUtils]: 2: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:11,040 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1236#true} {1236#true} #71#return; {1236#true} is VALID [2022-04-14 17:27:11,040 INFO L272 TraceCheckUtils]: 4: Hoare triple {1236#true} call #t~ret6 := main(); {1236#true} is VALID [2022-04-14 17:27:11,040 INFO L290 TraceCheckUtils]: 5: Hoare triple {1236#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L272 TraceCheckUtils]: 6: Hoare triple {1236#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 7: Hoare triple {1236#true} ~cond := #in~cond; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 8: Hoare triple {1236#true} assume !(0 == ~cond); {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 9: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1236#true} {1236#true} #61#return; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 11: Hoare triple {1236#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L272 TraceCheckUtils]: 12: Hoare triple {1236#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 13: Hoare triple {1236#true} ~cond := #in~cond; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 14: Hoare triple {1236#true} assume !(0 == ~cond); {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L290 TraceCheckUtils]: 15: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:11,041 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1236#true} {1236#true} #63#return; {1236#true} is VALID [2022-04-14 17:27:11,042 INFO L272 TraceCheckUtils]: 17: Hoare triple {1236#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:11,047 INFO L290 TraceCheckUtils]: 18: Hoare triple {1236#true} ~cond := #in~cond; {1295#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-14 17:27:11,047 INFO L290 TraceCheckUtils]: 19: Hoare triple {1295#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1299#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:27:11,051 INFO L290 TraceCheckUtils]: 20: Hoare triple {1299#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1299#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:27:11,051 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1299#(not (= |assume_abort_if_not_#in~cond| 0))} {1236#true} #65#return; {1306#(<= 1 main_~b~0)} is VALID [2022-04-14 17:27:11,052 INFO L290 TraceCheckUtils]: 22: Hoare triple {1306#(<= 1 main_~b~0)} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:27:11,052 INFO L290 TraceCheckUtils]: 23: Hoare triple {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} assume !false; {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:27:11,052 INFO L272 TraceCheckUtils]: 24: Hoare triple {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:11,052 INFO L290 TraceCheckUtils]: 25: Hoare triple {1236#true} ~cond := #in~cond; {1320#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:11,053 INFO L290 TraceCheckUtils]: 26: Hoare triple {1320#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:11,053 INFO L290 TraceCheckUtils]: 27: Hoare triple {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:11,053 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} #67#return; {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:27:11,054 INFO L290 TraceCheckUtils]: 29: Hoare triple {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} assume !!(0 != ~y~0); {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:27:11,054 INFO L290 TraceCheckUtils]: 30: Hoare triple {1310#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {1337#(and (= main_~z~0 0) (not (= (mod main_~y~0 2) 1)) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:27:11,055 INFO L290 TraceCheckUtils]: 31: Hoare triple {1337#(and (= main_~z~0 0) (not (= (mod main_~y~0 2) 1)) (= main_~b~0 main_~y~0) (<= 1 main_~b~0) (= main_~a~0 main_~x~0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {1341#(and (= main_~z~0 0) (= main_~y~0 (div main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (not (= (mod main_~b~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-14 17:27:11,056 INFO L290 TraceCheckUtils]: 32: Hoare triple {1341#(and (= main_~z~0 0) (= main_~y~0 (div main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (not (= (mod main_~b~0 2) 1)) (<= 1 main_~b~0))} assume !false; {1341#(and (= main_~z~0 0) (= main_~y~0 (div main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (not (= (mod main_~b~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-14 17:27:11,057 INFO L272 TraceCheckUtils]: 33: Hoare triple {1341#(and (= main_~z~0 0) (= main_~y~0 (div main_~b~0 2)) (= (* main_~a~0 2) main_~x~0) (not (= (mod main_~b~0 2) 1)) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1348#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:27:11,058 INFO L290 TraceCheckUtils]: 34: Hoare triple {1348#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1352#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:11,058 INFO L290 TraceCheckUtils]: 35: Hoare triple {1352#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1237#false} is VALID [2022-04-14 17:27:11,058 INFO L290 TraceCheckUtils]: 36: Hoare triple {1237#false} assume !false; {1237#false} is VALID [2022-04-14 17:27:11,058 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 7 proven. 3 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-14 17:27:11,058 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 17:27:44,370 INFO L290 TraceCheckUtils]: 36: Hoare triple {1237#false} assume !false; {1237#false} is VALID [2022-04-14 17:27:44,370 INFO L290 TraceCheckUtils]: 35: Hoare triple {1352#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1237#false} is VALID [2022-04-14 17:27:44,371 INFO L290 TraceCheckUtils]: 34: Hoare triple {1348#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1352#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:44,372 INFO L272 TraceCheckUtils]: 33: Hoare triple {1368#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1348#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:27:44,372 INFO L290 TraceCheckUtils]: 32: Hoare triple {1368#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} assume !false; {1368#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:27:44,376 INFO L290 TraceCheckUtils]: 31: Hoare triple {1375#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {1368#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:27:44,377 INFO L290 TraceCheckUtils]: 30: Hoare triple {1379#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {1375#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} is VALID [2022-04-14 17:27:44,378 INFO L290 TraceCheckUtils]: 29: Hoare triple {1379#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} assume !!(0 != ~y~0); {1379#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} is VALID [2022-04-14 17:27:44,380 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} {1386#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} #67#return; {1379#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} is VALID [2022-04-14 17:27:44,381 INFO L290 TraceCheckUtils]: 27: Hoare triple {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:44,381 INFO L290 TraceCheckUtils]: 26: Hoare triple {1396#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {1324#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:44,381 INFO L290 TraceCheckUtils]: 25: Hoare triple {1236#true} ~cond := #in~cond; {1396#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 17:27:44,381 INFO L272 TraceCheckUtils]: 24: Hoare triple {1386#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:44,382 INFO L290 TraceCheckUtils]: 23: Hoare triple {1386#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} assume !false; {1386#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} is VALID [2022-04-14 17:27:44,382 INFO L290 TraceCheckUtils]: 22: Hoare triple {1406#(or (= (* main_~b~0 main_~a~0) (* (* main_~a~0 2) (+ (div main_~b~0 2) 1))) (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {1386#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} is VALID [2022-04-14 17:27:44,383 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1299#(not (= |assume_abort_if_not_#in~cond| 0))} {1236#true} #65#return; {1406#(or (= (* main_~b~0 main_~a~0) (* (* main_~a~0 2) (+ (div main_~b~0 2) 1))) (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:27:44,383 INFO L290 TraceCheckUtils]: 20: Hoare triple {1299#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1299#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:27:44,384 INFO L290 TraceCheckUtils]: 19: Hoare triple {1419#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {1299#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:27:44,384 INFO L290 TraceCheckUtils]: 18: Hoare triple {1236#true} ~cond := #in~cond; {1419#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-14 17:27:44,384 INFO L272 TraceCheckUtils]: 17: Hoare triple {1236#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:44,384 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1236#true} {1236#true} #63#return; {1236#true} is VALID [2022-04-14 17:27:44,384 INFO L290 TraceCheckUtils]: 15: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 14: Hoare triple {1236#true} assume !(0 == ~cond); {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 13: Hoare triple {1236#true} ~cond := #in~cond; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L272 TraceCheckUtils]: 12: Hoare triple {1236#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 11: Hoare triple {1236#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1236#true} {1236#true} #61#return; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 9: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 8: Hoare triple {1236#true} assume !(0 == ~cond); {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 7: Hoare triple {1236#true} ~cond := #in~cond; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L272 TraceCheckUtils]: 6: Hoare triple {1236#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 5: Hoare triple {1236#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L272 TraceCheckUtils]: 4: Hoare triple {1236#true} call #t~ret6 := main(); {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1236#true} {1236#true} #71#return; {1236#true} is VALID [2022-04-14 17:27:44,385 INFO L290 TraceCheckUtils]: 2: Hoare triple {1236#true} assume true; {1236#true} is VALID [2022-04-14 17:27:44,386 INFO L290 TraceCheckUtils]: 1: Hoare triple {1236#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(13, 2);call #Ultimate.allocInit(12, 3); {1236#true} is VALID [2022-04-14 17:27:44,386 INFO L272 TraceCheckUtils]: 0: Hoare triple {1236#true} call ULTIMATE.init(); {1236#true} is VALID [2022-04-14 17:27:44,386 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 7 proven. 3 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-14 17:27:44,386 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:27:44,386 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [569271398] [2022-04-14 17:27:44,386 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:27:44,386 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1672409684] [2022-04-14 17:27:44,386 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1672409684] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 17:27:44,386 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 17:27:44,386 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [12, 13] total 19 [2022-04-14 17:27:44,387 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1039053700] [2022-04-14 17:27:44,387 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 17:27:44,387 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) Word has length 37 [2022-04-14 17:27:44,387 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:27:44,388 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) [2022-04-14 17:27:44,427 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:27:44,427 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-04-14 17:27:44,427 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:27:44,428 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-04-14 17:27:44,428 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=280, Unknown=0, NotChecked=0, Total=342 [2022-04-14 17:27:44,428 INFO L87 Difference]: Start difference. First operand 43 states and 49 transitions. Second operand has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) [2022-04-14 17:27:46,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:46,834 INFO L93 Difference]: Finished difference Result 68 states and 81 transitions. [2022-04-14 17:27:46,834 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-14 17:27:46,834 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) Word has length 37 [2022-04-14 17:27:46,835 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:27:46,835 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) [2022-04-14 17:27:46,836 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 67 transitions. [2022-04-14 17:27:46,836 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) [2022-04-14 17:27:46,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 67 transitions. [2022-04-14 17:27:46,838 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 67 transitions. [2022-04-14 17:27:46,907 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:27:46,908 INFO L225 Difference]: With dead ends: 68 [2022-04-14 17:27:46,908 INFO L226 Difference]: Without dead ends: 61 [2022-04-14 17:27:46,909 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 80 GetRequests, 54 SyntacticMatches, 2 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 102 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=122, Invalid=528, Unknown=0, NotChecked=0, Total=650 [2022-04-14 17:27:46,909 INFO L913 BasicCegarLoop]: 19 mSDtfsCounter, 39 mSDsluCounter, 141 mSDsCounter, 0 mSdLazyCounter, 323 mSolverCounterSat, 29 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 41 SdHoareTripleChecker+Valid, 160 SdHoareTripleChecker+Invalid, 352 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 29 IncrementalHoareTripleChecker+Valid, 323 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.1s IncrementalHoareTripleChecker+Time [2022-04-14 17:27:46,909 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [41 Valid, 160 Invalid, 352 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [29 Valid, 323 Invalid, 0 Unknown, 0 Unchecked, 1.1s Time] [2022-04-14 17:27:46,910 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2022-04-14 17:27:46,928 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 61. [2022-04-14 17:27:46,928 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:27:46,928 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:27:46,929 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:27:46,929 INFO L87 Difference]: Start difference. First operand 61 states. Second operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:27:46,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:46,931 INFO L93 Difference]: Finished difference Result 61 states and 73 transitions. [2022-04-14 17:27:46,931 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 73 transitions. [2022-04-14 17:27:46,931 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:27:46,931 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:27:46,931 INFO L74 IsIncluded]: Start isIncluded. First operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 61 states. [2022-04-14 17:27:46,931 INFO L87 Difference]: Start difference. First operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 61 states. [2022-04-14 17:27:46,933 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:27:46,933 INFO L93 Difference]: Finished difference Result 61 states and 73 transitions. [2022-04-14 17:27:46,933 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 73 transitions. [2022-04-14 17:27:46,934 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:27:46,934 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:27:46,934 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:27:46,934 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:27:46,935 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 61 states, 42 states have (on average 1.2142857142857142) internal successors, (51), 44 states have internal predecessors, (51), 12 states have call successors, (12), 7 states have call predecessors, (12), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:27:46,937 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 73 transitions. [2022-04-14 17:27:46,937 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 73 transitions. Word has length 37 [2022-04-14 17:27:46,937 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:27:46,937 INFO L478 AbstractCegarLoop]: Abstraction has 61 states and 73 transitions. [2022-04-14 17:27:46,937 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 19 states, 19 states have (on average 1.6842105263157894) internal successors, (32), 16 states have internal predecessors, (32), 5 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 3 states have call successors, (7) [2022-04-14 17:27:46,937 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 73 transitions. [2022-04-14 17:27:46,938 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-04-14 17:27:46,938 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:27:46,938 INFO L499 BasicCegarLoop]: trace histogram [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, 1, 1] [2022-04-14 17:27:46,954 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-14 17:27:47,139 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:27:47,139 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:27:47,140 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:27:47,140 INFO L85 PathProgramCache]: Analyzing trace with hash -1351630086, now seen corresponding path program 1 times [2022-04-14 17:27:47,140 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:27:47,140 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [558442103] [2022-04-14 17:27:47,140 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:27:47,140 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:27:47,157 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:27:47,158 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [182649446] [2022-04-14 17:27:47,158 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:27:47,158 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:27:47,158 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:27:47,161 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:27:47,163 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-14 17:27:47,204 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:27:47,205 INFO L263 TraceCheckSpWp]: Trace formula consists of 122 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-14 17:27:47,212 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:27:47,213 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:27:51,960 INFO L272 TraceCheckUtils]: 0: Hoare triple {1793#true} call ULTIMATE.init(); {1793#true} is VALID [2022-04-14 17:27:51,960 INFO L290 TraceCheckUtils]: 1: Hoare triple {1793#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(13, 2);call #Ultimate.allocInit(12, 3); {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 2: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1793#true} {1793#true} #71#return; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L272 TraceCheckUtils]: 4: Hoare triple {1793#true} call #t~ret6 := main(); {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 5: Hoare triple {1793#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L272 TraceCheckUtils]: 6: Hoare triple {1793#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 7: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 8: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 9: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1793#true} {1793#true} #61#return; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 11: Hoare triple {1793#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L272 TraceCheckUtils]: 12: Hoare triple {1793#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:27:51,961 INFO L290 TraceCheckUtils]: 13: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 14: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 15: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1793#true} {1793#true} #63#return; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L272 TraceCheckUtils]: 17: Hoare triple {1793#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 18: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 19: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 20: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1793#true} {1793#true} #65#return; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 22: Hoare triple {1793#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 23: Hoare triple {1793#true} assume !false; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L272 TraceCheckUtils]: 24: Hoare triple {1793#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 25: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:27:51,962 INFO L290 TraceCheckUtils]: 26: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 27: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1793#true} {1793#true} #67#return; {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 29: Hoare triple {1793#true} assume !!(0 != ~y~0); {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 30: Hoare triple {1793#true} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 31: Hoare triple {1793#true} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 32: Hoare triple {1793#true} assume !false; {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L272 TraceCheckUtils]: 33: Hoare triple {1793#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:27:51,963 INFO L290 TraceCheckUtils]: 34: Hoare triple {1793#true} ~cond := #in~cond; {1900#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:51,964 INFO L290 TraceCheckUtils]: 35: Hoare triple {1900#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:51,964 INFO L290 TraceCheckUtils]: 36: Hoare triple {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:27:53,966 WARN L284 TraceCheckUtils]: 37: Hoare quadruple {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} {1793#true} #67#return; {1911#(or (and (not (= main_~y~0 0)) (= (mod (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) main_~y~0) 0)) (= (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) 0))} is UNKNOWN [2022-04-14 17:27:53,967 INFO L290 TraceCheckUtils]: 38: Hoare triple {1911#(or (and (not (= main_~y~0 0)) (= (mod (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) main_~y~0) 0)) (= (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) 0))} assume !(0 != ~y~0); {1915#(= main_~z~0 (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:27:53,968 INFO L272 TraceCheckUtils]: 39: Hoare triple {1915#(= main_~z~0 (* main_~b~0 main_~a~0))} call __VERIFIER_assert((if ~z~0 == ~a~0 * ~b~0 then 1 else 0)); {1919#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:27:53,968 INFO L290 TraceCheckUtils]: 40: Hoare triple {1919#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1923#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:27:53,968 INFO L290 TraceCheckUtils]: 41: Hoare triple {1923#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1794#false} is VALID [2022-04-14 17:27:53,968 INFO L290 TraceCheckUtils]: 42: Hoare triple {1794#false} assume !false; {1794#false} is VALID [2022-04-14 17:27:53,968 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-14 17:27:53,969 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 17:28:07,225 INFO L290 TraceCheckUtils]: 42: Hoare triple {1794#false} assume !false; {1794#false} is VALID [2022-04-14 17:28:07,226 INFO L290 TraceCheckUtils]: 41: Hoare triple {1923#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1794#false} is VALID [2022-04-14 17:28:07,226 INFO L290 TraceCheckUtils]: 40: Hoare triple {1919#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1923#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:28:07,227 INFO L272 TraceCheckUtils]: 39: Hoare triple {1915#(= main_~z~0 (* main_~b~0 main_~a~0))} call __VERIFIER_assert((if ~z~0 == ~a~0 * ~b~0 then 1 else 0)); {1919#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:28:07,227 INFO L290 TraceCheckUtils]: 38: Hoare triple {1942#(or (not (= main_~y~0 0)) (= main_~z~0 (* main_~b~0 main_~a~0)))} assume !(0 != ~y~0); {1915#(= main_~z~0 (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:28:07,228 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} {1793#true} #67#return; {1942#(or (not (= main_~y~0 0)) (= main_~z~0 (* main_~b~0 main_~a~0)))} is VALID [2022-04-14 17:28:07,228 INFO L290 TraceCheckUtils]: 36: Hoare triple {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 35: Hoare triple {1955#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {1904#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 34: Hoare triple {1793#true} ~cond := #in~cond; {1955#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 17:28:07,229 INFO L272 TraceCheckUtils]: 33: Hoare triple {1793#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 32: Hoare triple {1793#true} assume !false; {1793#true} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 31: Hoare triple {1793#true} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {1793#true} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 30: Hoare triple {1793#true} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {1793#true} is VALID [2022-04-14 17:28:07,229 INFO L290 TraceCheckUtils]: 29: Hoare triple {1793#true} assume !!(0 != ~y~0); {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1793#true} {1793#true} #67#return; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 27: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 26: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 25: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L272 TraceCheckUtils]: 24: Hoare triple {1793#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 23: Hoare triple {1793#true} assume !false; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 22: Hoare triple {1793#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1793#true} {1793#true} #65#return; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 20: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 19: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L290 TraceCheckUtils]: 18: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L272 TraceCheckUtils]: 17: Hoare triple {1793#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:28:07,230 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1793#true} {1793#true} #63#return; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 15: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 14: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 13: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L272 TraceCheckUtils]: 12: Hoare triple {1793#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 11: Hoare triple {1793#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1793#true} {1793#true} #61#return; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 9: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 8: Hoare triple {1793#true} assume !(0 == ~cond); {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 7: Hoare triple {1793#true} ~cond := #in~cond; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L272 TraceCheckUtils]: 6: Hoare triple {1793#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 5: Hoare triple {1793#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L272 TraceCheckUtils]: 4: Hoare triple {1793#true} call #t~ret6 := main(); {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1793#true} {1793#true} #71#return; {1793#true} is VALID [2022-04-14 17:28:07,231 INFO L290 TraceCheckUtils]: 2: Hoare triple {1793#true} assume true; {1793#true} is VALID [2022-04-14 17:28:07,232 INFO L290 TraceCheckUtils]: 1: Hoare triple {1793#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(13, 2);call #Ultimate.allocInit(12, 3); {1793#true} is VALID [2022-04-14 17:28:07,232 INFO L272 TraceCheckUtils]: 0: Hoare triple {1793#true} call ULTIMATE.init(); {1793#true} is VALID [2022-04-14 17:28:07,232 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-14 17:28:07,232 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:28:07,232 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [558442103] [2022-04-14 17:28:07,232 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:28:07,232 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [182649446] [2022-04-14 17:28:07,232 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [182649446] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 17:28:07,232 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 17:28:07,232 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 10 [2022-04-14 17:28:07,232 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [463074519] [2022-04-14 17:28:07,233 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 17:28:07,233 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) Word has length 43 [2022-04-14 17:28:07,233 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:28:07,233 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) [2022-04-14 17:28:09,258 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 38 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-14 17:28:09,259 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-14 17:28:09,259 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:28:09,259 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-14 17:28:09,259 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2022-04-14 17:28:09,260 INFO L87 Difference]: Start difference. First operand 61 states and 73 transitions. Second operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) [2022-04-14 17:28:11,312 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:28:11,508 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:28:11,508 INFO L93 Difference]: Finished difference Result 68 states and 79 transitions. [2022-04-14 17:28:11,508 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-14 17:28:11,508 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) Word has length 43 [2022-04-14 17:28:11,509 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:28:11,509 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) [2022-04-14 17:28:11,509 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 40 transitions. [2022-04-14 17:28:11,509 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) [2022-04-14 17:28:11,510 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 40 transitions. [2022-04-14 17:28:11,510 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 40 transitions. [2022-04-14 17:28:15,543 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 38 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-14 17:28:15,545 INFO L225 Difference]: With dead ends: 68 [2022-04-14 17:28:15,545 INFO L226 Difference]: Without dead ends: 61 [2022-04-14 17:28:15,545 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 87 GetRequests, 76 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 14 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=95, Unknown=0, NotChecked=0, Total=132 [2022-04-14 17:28:15,545 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 17 mSDsluCounter, 97 mSDsCounter, 0 mSdLazyCounter, 69 mSolverCounterSat, 2 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 17 SdHoareTripleChecker+Valid, 122 SdHoareTripleChecker+Invalid, 72 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 69 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 2.1s IncrementalHoareTripleChecker+Time [2022-04-14 17:28:15,546 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [17 Valid, 122 Invalid, 72 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 69 Invalid, 1 Unknown, 0 Unchecked, 2.1s Time] [2022-04-14 17:28:15,546 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2022-04-14 17:28:15,569 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 60. [2022-04-14 17:28:15,569 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:28:15,569 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:28:15,570 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:28:15,570 INFO L87 Difference]: Start difference. First operand 61 states. Second operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:28:15,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:28:15,572 INFO L93 Difference]: Finished difference Result 61 states and 70 transitions. [2022-04-14 17:28:15,572 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 70 transitions. [2022-04-14 17:28:15,572 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:28:15,572 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:28:15,572 INFO L74 IsIncluded]: Start isIncluded. First operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 61 states. [2022-04-14 17:28:15,572 INFO L87 Difference]: Start difference. First operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) Second operand 61 states. [2022-04-14 17:28:15,574 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:28:15,574 INFO L93 Difference]: Finished difference Result 61 states and 70 transitions. [2022-04-14 17:28:15,574 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 70 transitions. [2022-04-14 17:28:15,574 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:28:15,574 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:28:15,574 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:28:15,574 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:28:15,575 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 60 states, 42 states have (on average 1.1428571428571428) internal successors, (48), 43 states have internal predecessors, (48), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (10), 9 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 17:28:15,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 69 transitions. [2022-04-14 17:28:15,576 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 69 transitions. Word has length 43 [2022-04-14 17:28:15,577 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:28:15,577 INFO L478 AbstractCegarLoop]: Abstraction has 60 states and 69 transitions. [2022-04-14 17:28:15,577 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 7 states have internal predecessors, (25), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (7), 3 states have call predecessors, (7), 1 states have call successors, (7) [2022-04-14 17:28:15,577 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 69 transitions. [2022-04-14 17:28:15,578 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 47 [2022-04-14 17:28:15,578 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:28:15,578 INFO L499 BasicCegarLoop]: trace histogram [3, 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] [2022-04-14 17:28:15,597 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-14 17:28:15,783 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:28:15,783 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:28:15,784 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:28:15,784 INFO L85 PathProgramCache]: Analyzing trace with hash -1494691206, now seen corresponding path program 1 times [2022-04-14 17:28:15,784 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:28:15,784 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [841025889] [2022-04-14 17:28:15,784 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:28:15,784 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:28:15,795 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:28:15,795 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [782503955] [2022-04-14 17:28:15,795 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:28:15,795 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:28:15,795 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:28:15,796 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:28:15,797 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-14 17:28:15,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:28:15,839 INFO L263 TraceCheckSpWp]: Trace formula consists of 127 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-14 17:28:15,859 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:28:15,860 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:28:43,051 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 17:29:06,124 INFO L272 TraceCheckUtils]: 0: Hoare triple {2364#true} call ULTIMATE.init(); {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 1: Hoare triple {2364#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(13, 2);call #Ultimate.allocInit(12, 3); {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 2: Hoare triple {2364#true} assume true; {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2364#true} {2364#true} #71#return; {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L272 TraceCheckUtils]: 4: Hoare triple {2364#true} call #t~ret6 := main(); {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 5: Hoare triple {2364#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L272 TraceCheckUtils]: 6: Hoare triple {2364#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 7: Hoare triple {2364#true} ~cond := #in~cond; {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 8: Hoare triple {2364#true} assume !(0 == ~cond); {2364#true} is VALID [2022-04-14 17:29:06,124 INFO L290 TraceCheckUtils]: 9: Hoare triple {2364#true} assume true; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2364#true} {2364#true} #61#return; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 11: Hoare triple {2364#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L272 TraceCheckUtils]: 12: Hoare triple {2364#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 13: Hoare triple {2364#true} ~cond := #in~cond; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 14: Hoare triple {2364#true} assume !(0 == ~cond); {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 15: Hoare triple {2364#true} assume true; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2364#true} {2364#true} #63#return; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L272 TraceCheckUtils]: 17: Hoare triple {2364#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 18: Hoare triple {2364#true} ~cond := #in~cond; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 19: Hoare triple {2364#true} assume !(0 == ~cond); {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L290 TraceCheckUtils]: 20: Hoare triple {2364#true} assume true; {2364#true} is VALID [2022-04-14 17:29:06,125 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2364#true} {2364#true} #65#return; {2364#true} is VALID [2022-04-14 17:29:06,126 INFO L290 TraceCheckUtils]: 22: Hoare triple {2364#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {2435#(= main_~a~0 main_~x~0)} is VALID [2022-04-14 17:29:06,126 INFO L290 TraceCheckUtils]: 23: Hoare triple {2435#(= main_~a~0 main_~x~0)} assume !false; {2435#(= main_~a~0 main_~x~0)} is VALID [2022-04-14 17:29:06,126 INFO L272 TraceCheckUtils]: 24: Hoare triple {2435#(= main_~a~0 main_~x~0)} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2364#true} is VALID [2022-04-14 17:29:06,126 INFO L290 TraceCheckUtils]: 25: Hoare triple {2364#true} ~cond := #in~cond; {2364#true} is VALID [2022-04-14 17:29:06,126 INFO L290 TraceCheckUtils]: 26: Hoare triple {2364#true} assume !(0 == ~cond); {2364#true} is VALID [2022-04-14 17:29:06,126 INFO L290 TraceCheckUtils]: 27: Hoare triple {2364#true} assume true; {2364#true} is VALID [2022-04-14 17:29:06,127 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2364#true} {2435#(= main_~a~0 main_~x~0)} #67#return; {2435#(= main_~a~0 main_~x~0)} is VALID [2022-04-14 17:29:06,127 INFO L290 TraceCheckUtils]: 29: Hoare triple {2435#(= main_~a~0 main_~x~0)} assume !!(0 != ~y~0); {2457#(and (not (= main_~y~0 0)) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:29:06,128 INFO L290 TraceCheckUtils]: 30: Hoare triple {2457#(and (not (= main_~y~0 0)) (= main_~a~0 main_~x~0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {2461#(and (< 0 (+ main_~y~0 1)) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:29:06,128 INFO L290 TraceCheckUtils]: 31: Hoare triple {2461#(and (< 0 (+ main_~y~0 1)) (= main_~a~0 main_~x~0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {2465#(and (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:06,129 INFO L290 TraceCheckUtils]: 32: Hoare triple {2465#(and (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} assume !false; {2465#(and (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:06,129 INFO L272 TraceCheckUtils]: 33: Hoare triple {2465#(and (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2364#true} is VALID [2022-04-14 17:29:06,129 INFO L290 TraceCheckUtils]: 34: Hoare triple {2364#true} ~cond := #in~cond; {2475#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:29:06,129 INFO L290 TraceCheckUtils]: 35: Hoare triple {2475#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {2479#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:29:06,130 INFO L290 TraceCheckUtils]: 36: Hoare triple {2479#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {2479#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:29:06,131 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {2479#(not (= |__VERIFIER_assert_#in~cond| 0))} {2465#(and (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} #67#return; {2486#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:06,131 INFO L290 TraceCheckUtils]: 38: Hoare triple {2486#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} assume !!(0 != ~y~0); {2486#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:06,132 INFO L290 TraceCheckUtils]: 39: Hoare triple {2486#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {2493#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 1)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:06,231 INFO L290 TraceCheckUtils]: 40: Hoare triple {2493#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 1)) (= (* main_~a~0 2) main_~x~0) (< 0 (+ main_~y~0 1)))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {2497#(and (= (* main_~a~0 4) main_~x~0) (exists ((aux_mod_v_main_~y~0_26_22 Int) (aux_div_v_main_~y~0_26_22 Int)) (and (not (= aux_mod_v_main_~y~0_26_22 1)) (< 0 (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22 1)) (<= 0 aux_mod_v_main_~y~0_26_22) (= main_~y~0 (div (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22) 2)) (= (+ (* (* main_~a~0 2) (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22)) main_~z~0) (* main_~b~0 main_~a~0)) (< aux_mod_v_main_~y~0_26_22 2))))} is VALID [2022-04-14 17:29:06,426 INFO L290 TraceCheckUtils]: 41: Hoare triple {2497#(and (= (* main_~a~0 4) main_~x~0) (exists ((aux_mod_v_main_~y~0_26_22 Int) (aux_div_v_main_~y~0_26_22 Int)) (and (not (= aux_mod_v_main_~y~0_26_22 1)) (< 0 (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22 1)) (<= 0 aux_mod_v_main_~y~0_26_22) (= main_~y~0 (div (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22) 2)) (= (+ (* (* main_~a~0 2) (+ (* aux_div_v_main_~y~0_26_22 2) aux_mod_v_main_~y~0_26_22)) main_~z~0) (* main_~b~0 main_~a~0)) (< aux_mod_v_main_~y~0_26_22 2))))} assume !false; {2501#(and (= (mod (+ main_~z~0 (* main_~a~0 main_~y~0 (- 4)) (* main_~b~0 main_~a~0)) 2) 0) (= (* main_~a~0 4) main_~x~0) (= (div (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) 2) (* 2 (* main_~a~0 main_~y~0))) (< 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:29:07,821 INFO L272 TraceCheckUtils]: 42: Hoare triple {2501#(and (= (mod (+ main_~z~0 (* main_~a~0 main_~y~0 (- 4)) (* main_~b~0 main_~a~0)) 2) 0) (= (* main_~a~0 4) main_~x~0) (= (div (+ (* (- 1) main_~z~0) (* main_~b~0 main_~a~0)) 2) (* 2 (* main_~a~0 main_~y~0))) (< 0 (+ main_~y~0 1)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2505#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:29:07,822 INFO L290 TraceCheckUtils]: 43: Hoare triple {2505#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2509#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:29:07,823 INFO L290 TraceCheckUtils]: 44: Hoare triple {2509#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2365#false} is VALID [2022-04-14 17:29:07,823 INFO L290 TraceCheckUtils]: 45: Hoare triple {2365#false} assume !false; {2365#false} is VALID [2022-04-14 17:29:07,823 INFO L134 CoverageAnalysis]: Checked inductivity of 29 backedges. 6 proven. 10 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-14 17:29:07,823 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 17:29:24,717 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:29:24,718 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [841025889] [2022-04-14 17:29:24,718 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:29:24,718 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [782503955] [2022-04-14 17:29:24,718 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [782503955] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-14 17:29:24,718 INFO L184 FreeRefinementEngine]: Found 0 perfect and 1 imperfect interpolant sequences. [2022-04-14 17:29:24,718 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [14] total 14 [2022-04-14 17:29:24,718 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [474587375] [2022-04-14 17:29:24,718 INFO L85 oduleStraightlineAll]: Using 1 imperfect interpolants to construct interpolant automaton [2022-04-14 17:29:24,719 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) Word has length 46 [2022-04-14 17:29:24,719 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:29:24,719 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-04-14 17:29:25,099 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 17:29:25,099 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-04-14 17:29:25,099 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:29:25,100 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-04-14 17:29:25,100 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=249, Unknown=0, NotChecked=0, Total=306 [2022-04-14 17:29:25,100 INFO L87 Difference]: Start difference. First operand 60 states and 69 transitions. Second operand has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-04-14 17:29:33,435 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.48s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:29:39,467 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:29:42,220 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:29:44,224 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:29:45,910 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:29:45,910 INFO L93 Difference]: Finished difference Result 88 states and 101 transitions. [2022-04-14 17:29:45,910 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-04-14 17:29:45,910 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) Word has length 46 [2022-04-14 17:29:45,910 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:29:45,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-04-14 17:29:45,911 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 56 transitions. [2022-04-14 17:29:45,911 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-04-14 17:29:45,912 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 56 transitions. [2022-04-14 17:29:45,912 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 13 states and 56 transitions. [2022-04-14 17:29:48,501 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 55 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-14 17:29:48,507 INFO L225 Difference]: With dead ends: 88 [2022-04-14 17:29:48,508 INFO L226 Difference]: Without dead ends: 86 [2022-04-14 17:29:48,508 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 57 GetRequests, 37 SyntacticMatches, 2 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 1 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 5.2s TimeCoverageRelationStatistics Valid=68, Invalid=312, Unknown=0, NotChecked=0, Total=380 [2022-04-14 17:29:48,509 INFO L913 BasicCegarLoop]: 28 mSDtfsCounter, 17 mSDsluCounter, 186 mSDsCounter, 0 mSdLazyCounter, 225 mSolverCounterSat, 6 mSolverCounterUnsat, 3 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 10.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 19 SdHoareTripleChecker+Valid, 214 SdHoareTripleChecker+Invalid, 234 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 225 IncrementalHoareTripleChecker+Invalid, 3 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 10.4s IncrementalHoareTripleChecker+Time [2022-04-14 17:29:48,509 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [19 Valid, 214 Invalid, 234 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 225 Invalid, 3 Unknown, 0 Unchecked, 10.4s Time] [2022-04-14 17:29:48,510 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2022-04-14 17:29:48,538 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 79. [2022-04-14 17:29:48,538 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:29:48,538 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:29:48,538 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:29:48,539 INFO L87 Difference]: Start difference. First operand 86 states. Second operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:29:48,540 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:29:48,541 INFO L93 Difference]: Finished difference Result 86 states and 99 transitions. [2022-04-14 17:29:48,541 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 99 transitions. [2022-04-14 17:29:48,541 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:29:48,541 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:29:48,541 INFO L74 IsIncluded]: Start isIncluded. First operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) Second operand 86 states. [2022-04-14 17:29:48,541 INFO L87 Difference]: Start difference. First operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) Second operand 86 states. [2022-04-14 17:29:48,543 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:29:48,543 INFO L93 Difference]: Finished difference Result 86 states and 99 transitions. [2022-04-14 17:29:48,543 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 99 transitions. [2022-04-14 17:29:48,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:29:48,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:29:48,544 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:29:48,544 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:29:48,544 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 79 states, 56 states have (on average 1.125) internal successors, (63), 59 states have internal predecessors, (63), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 10 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:29:48,545 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 90 transitions. [2022-04-14 17:29:48,545 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 90 transitions. Word has length 46 [2022-04-14 17:29:48,545 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:29:48,546 INFO L478 AbstractCegarLoop]: Abstraction has 79 states and 90 transitions. [2022-04-14 17:29:48,546 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 13 states have (on average 2.0) internal successors, (26), 13 states have internal predecessors, (26), 4 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 3 states have call predecessors, (6), 3 states have call successors, (6) [2022-04-14 17:29:48,546 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 90 transitions. [2022-04-14 17:29:48,546 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-04-14 17:29:48,546 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:29:48,546 INFO L499 BasicCegarLoop]: trace histogram [4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:29:48,567 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-04-14 17:29:48,763 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:29:48,764 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:29:48,764 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:29:48,764 INFO L85 PathProgramCache]: Analyzing trace with hash -1459553868, now seen corresponding path program 2 times [2022-04-14 17:29:48,764 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:29:48,764 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [432006852] [2022-04-14 17:29:48,764 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:29:48,764 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:29:48,785 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:29:48,785 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1794372115] [2022-04-14 17:29:48,785 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-14 17:29:48,785 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:29:48,786 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:29:48,792 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:29:48,793 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-14 17:29:48,839 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-14 17:29:48,839 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 17:29:48,840 INFO L263 TraceCheckSpWp]: Trace formula consists of 148 conjuncts, 53 conjunts are in the unsatisfiable core [2022-04-14 17:29:48,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:29:48,857 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:36:21,166 INFO L272 TraceCheckUtils]: 0: Hoare triple {2954#true} call ULTIMATE.init(); {2954#true} is VALID [2022-04-14 17:36:21,166 INFO L290 TraceCheckUtils]: 1: Hoare triple {2954#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(13, 2);call #Ultimate.allocInit(12, 3); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 2: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2954#true} {2954#true} #71#return; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L272 TraceCheckUtils]: 4: Hoare triple {2954#true} call #t~ret6 := main(); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 5: Hoare triple {2954#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L272 TraceCheckUtils]: 6: Hoare triple {2954#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 7: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 8: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 9: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2954#true} {2954#true} #61#return; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 11: Hoare triple {2954#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L272 TraceCheckUtils]: 12: Hoare triple {2954#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 13: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 14: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:36:21,167 INFO L290 TraceCheckUtils]: 15: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2954#true} {2954#true} #63#return; {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L272 TraceCheckUtils]: 17: Hoare triple {2954#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L290 TraceCheckUtils]: 18: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L290 TraceCheckUtils]: 19: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L290 TraceCheckUtils]: 20: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:36:21,168 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2954#true} {2954#true} #65#return; {2954#true} is VALID [2022-04-14 17:36:21,175 INFO L290 TraceCheckUtils]: 22: Hoare triple {2954#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:36:21,176 INFO L290 TraceCheckUtils]: 23: Hoare triple {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume !false; {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:36:21,176 INFO L272 TraceCheckUtils]: 24: Hoare triple {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,176 INFO L290 TraceCheckUtils]: 25: Hoare triple {2954#true} ~cond := #in~cond; {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:36:21,176 INFO L290 TraceCheckUtils]: 26: Hoare triple {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,177 INFO L290 TraceCheckUtils]: 27: Hoare triple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,177 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} #67#return; {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:36:21,178 INFO L290 TraceCheckUtils]: 29: Hoare triple {3025#(and (= main_~z~0 0) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume !!(0 != ~y~0); {3049#(and (= main_~z~0 0) (not (= main_~y~0 0)) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} is VALID [2022-04-14 17:36:21,179 INFO L290 TraceCheckUtils]: 30: Hoare triple {3049#(and (= main_~z~0 0) (not (= main_~y~0 0)) (= main_~b~0 main_~y~0) (= main_~a~0 main_~x~0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {3053#(and (<= 1 (mod (+ main_~y~0 1) 2)) (= main_~b~0 (+ main_~y~0 1)) (= main_~z~0 main_~x~0) (= main_~a~0 main_~x~0) (<= 0 (+ main_~y~0 1)))} is VALID [2022-04-14 17:36:21,180 INFO L290 TraceCheckUtils]: 31: Hoare triple {3053#(and (<= 1 (mod (+ main_~y~0 1) 2)) (= main_~b~0 (+ main_~y~0 1)) (= main_~z~0 main_~x~0) (= main_~a~0 main_~x~0) (<= 0 (+ main_~y~0 1)))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3057#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:36:21,188 INFO L290 TraceCheckUtils]: 32: Hoare triple {3057#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} assume !false; {3057#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:36:21,188 INFO L272 TraceCheckUtils]: 33: Hoare triple {3057#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,188 INFO L290 TraceCheckUtils]: 34: Hoare triple {2954#true} ~cond := #in~cond; {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:36:21,188 INFO L290 TraceCheckUtils]: 35: Hoare triple {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,189 INFO L290 TraceCheckUtils]: 36: Hoare triple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,190 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} {3057#(and (= main_~a~0 main_~z~0) (<= 1 (mod main_~b~0 2)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} #67#return; {3076#(and (<= 1 (mod main_~b~0 2)) (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:36:21,190 INFO L290 TraceCheckUtils]: 38: Hoare triple {3076#(and (<= 1 (mod main_~b~0 2)) (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} assume !!(0 != ~y~0); {3080#(and (not (= main_~y~0 0)) (<= 1 (mod main_~b~0 2)) (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} is VALID [2022-04-14 17:36:21,193 INFO L290 TraceCheckUtils]: 39: Hoare triple {3080#(and (not (= main_~y~0 0)) (<= 1 (mod main_~b~0 2)) (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (= main_~x~0 (* main_~z~0 2)) (<= 0 main_~b~0) (= (div (+ (- 1) main_~b~0) 2) main_~y~0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {3084#(and (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) main_~x~0)) (+ main_~x~0 (* main_~b~0 main_~a~0))) (<= 1 (mod main_~b~0 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ main_~x~0 (* 2 (* (div (+ (- 1) main_~b~0) 2) main_~x~0)))) (= (div (+ (- 1) main_~b~0) 2) (+ main_~y~0 1)) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0))} is VALID [2022-04-14 17:36:21,261 INFO L290 TraceCheckUtils]: 40: Hoare triple {3084#(and (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) main_~x~0)) (+ main_~x~0 (* main_~b~0 main_~a~0))) (<= 1 (mod main_~b~0 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ main_~x~0 (* 2 (* (div (+ (- 1) main_~b~0) 2) main_~x~0)))) (= (div (+ (- 1) main_~b~0) 2) (+ main_~y~0 1)) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} is VALID [2022-04-14 17:36:21,262 INFO L290 TraceCheckUtils]: 41: Hoare triple {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} assume !false; {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} is VALID [2022-04-14 17:36:21,262 INFO L272 TraceCheckUtils]: 42: Hoare triple {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:36:21,262 INFO L290 TraceCheckUtils]: 43: Hoare triple {2954#true} ~cond := #in~cond; {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:36:21,263 INFO L290 TraceCheckUtils]: 44: Hoare triple {3035#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,263 INFO L290 TraceCheckUtils]: 45: Hoare triple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:36:21,264 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} #67#return; {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} is VALID [2022-04-14 17:36:21,265 INFO L290 TraceCheckUtils]: 47: Hoare triple {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} assume !!(0 != ~y~0); {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} is VALID [2022-04-14 17:36:21,266 INFO L290 TraceCheckUtils]: 48: Hoare triple {3088#(and (<= 1 (mod main_~b~0 2)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (- main_~x~0) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))))) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0) (= (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (- main_~x~0) (- 2)))) (+ (div (- main_~x~0) (- 2)) (* main_~b~0 main_~a~0))))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {3113#(and (<= 1 (mod main_~b~0 2)) (not (= (mod main_~y~0 2) 1)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (= (+ (div (* (- 1) main_~x~0) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (* (- 1) main_~x~0) (- 2)) (div (+ (- 1) main_~b~0) 2)))) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) main_~x~0) (- 2)) (* 2 (* (div (* (- 1) main_~x~0) (- 2)) (div (+ (- 1) main_~b~0) 2))))) (= (mod main_~x~0 2) 0))} is VALID [2022-04-14 17:36:23,172 INFO L290 TraceCheckUtils]: 49: Hoare triple {3113#(and (<= 1 (mod main_~b~0 2)) (not (= (mod main_~y~0 2) 1)) (= (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) main_~y~0) (= (+ (div (* (- 1) main_~x~0) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (* (- 1) main_~x~0) (- 2)) (div (+ (- 1) main_~b~0) 2)))) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) main_~x~0) (- 2)) (* 2 (* (div (* (- 1) main_~x~0) (- 2)) (div (+ (- 1) main_~b~0) 2))))) (= (mod main_~x~0 2) 0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3117#(and (= (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2))))) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)))))) (<= 1 (mod main_~b~0 2)) (= (div (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) main_~y~0) (not (= (mod (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) 1)) (= (mod (div (- main_~x~0) (- 2)) 2) 0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-14 17:36:23,173 INFO L290 TraceCheckUtils]: 50: Hoare triple {3117#(and (= (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2))))) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)))))) (<= 1 (mod main_~b~0 2)) (= (div (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) main_~y~0) (not (= (mod (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) 1)) (= (mod (div (- main_~x~0) (- 2)) 2) 0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} assume !false; {3117#(and (= (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2))))) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)))))) (<= 1 (mod main_~b~0 2)) (= (div (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) main_~y~0) (not (= (mod (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) 1)) (= (mod (div (- main_~x~0) (- 2)) 2) 0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-14 17:36:25,176 WARN L272 TraceCheckUtils]: 51: Hoare triple {3117#(and (= (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* main_~b~0 main_~a~0)) (+ main_~z~0 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2))))) (= (* 2 (* main_~b~0 main_~a~0)) (+ (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)) (* 2 (* (div (+ (- 1) main_~b~0) 2) (div (* (- 1) (div (- main_~x~0) (- 2))) (- 2)))))) (<= 1 (mod main_~b~0 2)) (= (div (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) main_~y~0) (not (= (mod (div (+ (- 1) (div (+ (- 1) main_~b~0) 2)) 2) 2) 1)) (= (mod (div (- main_~x~0) (- 2)) 2) 0) (<= 1 (mod (div (+ (- 1) main_~b~0) 2) 2)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3124#(<= 1 |__VERIFIER_assert_#in~cond|)} is UNKNOWN [2022-04-14 17:36:25,177 INFO L290 TraceCheckUtils]: 52: Hoare triple {3124#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3128#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:36:25,177 INFO L290 TraceCheckUtils]: 53: Hoare triple {3128#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2955#false} is VALID [2022-04-14 17:36:25,177 INFO L290 TraceCheckUtils]: 54: Hoare triple {2955#false} assume !false; {2955#false} is VALID [2022-04-14 17:36:25,178 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 3 proven. 24 refuted. 0 times theorem prover too weak. 24 trivial. 0 not checked. [2022-04-14 17:36:25,178 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 17:38:36,356 INFO L290 TraceCheckUtils]: 54: Hoare triple {2955#false} assume !false; {2955#false} is VALID [2022-04-14 17:38:36,356 INFO L290 TraceCheckUtils]: 53: Hoare triple {3128#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2955#false} is VALID [2022-04-14 17:38:36,357 INFO L290 TraceCheckUtils]: 52: Hoare triple {3124#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3128#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:38:36,357 INFO L272 TraceCheckUtils]: 51: Hoare triple {3144#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3124#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:38:36,358 INFO L290 TraceCheckUtils]: 50: Hoare triple {3144#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} assume !false; {3144#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:38:36,362 INFO L290 TraceCheckUtils]: 49: Hoare triple {3151#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3144#(= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))} is VALID [2022-04-14 17:38:36,363 INFO L290 TraceCheckUtils]: 48: Hoare triple {3155#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {3151#(and (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (and (not (= (mod main_~y~0 2) 0)) (< main_~y~0 0))))} is VALID [2022-04-14 17:38:36,363 INFO L290 TraceCheckUtils]: 47: Hoare triple {3155#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} assume !!(0 != ~y~0); {3155#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} is VALID [2022-04-14 17:38:36,366 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} {3162#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} #67#return; {3155#(or (and (<= 0 main_~y~0) (= (mod main_~y~0 2) 1)) (and (or (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0))) (or (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 0)))))} is VALID [2022-04-14 17:38:36,366 INFO L290 TraceCheckUtils]: 45: Hoare triple {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:38:36,366 INFO L290 TraceCheckUtils]: 44: Hoare triple {3172#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3039#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:38:36,367 INFO L290 TraceCheckUtils]: 43: Hoare triple {2954#true} ~cond := #in~cond; {3172#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 17:38:36,367 INFO L272 TraceCheckUtils]: 42: Hoare triple {3162#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,367 INFO L290 TraceCheckUtils]: 41: Hoare triple {3162#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} assume !false; {3162#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} is VALID [2022-04-14 17:38:36,432 INFO L290 TraceCheckUtils]: 40: Hoare triple {3182#(forall ((aux_div_aux_mod_v_main_~y~0_38_22_69 Int)) (or (and (or (not (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0))) (< (div main_~y~0 2) (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)) (not (= (mod main_~y~0 2) 0)) (<= 0 (div main_~y~0 2)) (<= (+ 2 (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)) (div main_~y~0 2)) (<= (div (- (div main_~y~0 2)) (- 2)) (+ (div (+ (- 2) (div main_~y~0 2)) 2) 1))) (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (not (= (* main_~b~0 main_~a~0) (+ (* main_~x~0 2) (* 2 (* (div main_~y~0 2) main_~x~0)) main_~z~0))) (<= (div (+ (- 1) (* (- 1) (div main_~y~0 2))) (- 2)) (+ (div (+ (- 1) (div main_~y~0 2)) 2) 1)) (<= (+ (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69) 1) (div main_~y~0 2)) (< (+ (div main_~y~0 2) 1) (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)))) (= (+ main_~z~0 (* main_~x~0 4) (* (* main_~x~0 aux_div_aux_mod_v_main_~y~0_38_22_69) 4)) (* main_~b~0 main_~a~0))))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3162#(or (<= 0 main_~y~0) (not (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0))) (= (mod main_~y~0 2) 0) (= (+ main_~z~0 (* (* main_~x~0 2) (+ (div main_~y~0 2) 1))) (* main_~b~0 main_~a~0)))} is VALID [2022-04-14 17:38:36,434 INFO L290 TraceCheckUtils]: 39: Hoare triple {2954#true} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {3182#(forall ((aux_div_aux_mod_v_main_~y~0_38_22_69 Int)) (or (and (or (not (= (+ main_~z~0 (* (* main_~x~0 2) (div main_~y~0 2))) (* main_~b~0 main_~a~0))) (< (div main_~y~0 2) (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)) (not (= (mod main_~y~0 2) 0)) (<= 0 (div main_~y~0 2)) (<= (+ 2 (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)) (div main_~y~0 2)) (<= (div (- (div main_~y~0 2)) (- 2)) (+ (div (+ (- 2) (div main_~y~0 2)) 2) 1))) (or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (not (= (* main_~b~0 main_~a~0) (+ (* main_~x~0 2) (* 2 (* (div main_~y~0 2) main_~x~0)) main_~z~0))) (<= (div (+ (- 1) (* (- 1) (div main_~y~0 2))) (- 2)) (+ (div (+ (- 1) (div main_~y~0 2)) 2) 1)) (<= (+ (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69) 1) (div main_~y~0 2)) (< (+ (div main_~y~0 2) 1) (* 2 aux_div_aux_mod_v_main_~y~0_38_22_69)))) (= (+ main_~z~0 (* main_~x~0 4) (* (* main_~x~0 aux_div_aux_mod_v_main_~y~0_38_22_69) 4)) (* main_~b~0 main_~a~0))))} is VALID [2022-04-14 17:38:36,434 INFO L290 TraceCheckUtils]: 38: Hoare triple {2954#true} assume !!(0 != ~y~0); {2954#true} is VALID [2022-04-14 17:38:36,434 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {2954#true} {2954#true} #67#return; {2954#true} is VALID [2022-04-14 17:38:36,434 INFO L290 TraceCheckUtils]: 36: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,434 INFO L290 TraceCheckUtils]: 35: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:38:36,434 INFO L290 TraceCheckUtils]: 34: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L272 TraceCheckUtils]: 33: Hoare triple {2954#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 32: Hoare triple {2954#true} assume !false; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 31: Hoare triple {2954#true} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 30: Hoare triple {2954#true} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 29: Hoare triple {2954#true} assume !!(0 != ~y~0); {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2954#true} {2954#true} #67#return; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 27: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 26: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 25: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L272 TraceCheckUtils]: 24: Hoare triple {2954#true} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 23: Hoare triple {2954#true} assume !false; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 22: Hoare triple {2954#true} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2954#true} {2954#true} #65#return; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 20: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,435 INFO L290 TraceCheckUtils]: 19: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 18: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L272 TraceCheckUtils]: 17: Hoare triple {2954#true} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2954#true} {2954#true} #63#return; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 15: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 14: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 13: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L272 TraceCheckUtils]: 12: Hoare triple {2954#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 11: Hoare triple {2954#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2954#true} {2954#true} #61#return; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 9: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 8: Hoare triple {2954#true} assume !(0 == ~cond); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 7: Hoare triple {2954#true} ~cond := #in~cond; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L272 TraceCheckUtils]: 6: Hoare triple {2954#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L290 TraceCheckUtils]: 5: Hoare triple {2954#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {2954#true} is VALID [2022-04-14 17:38:36,436 INFO L272 TraceCheckUtils]: 4: Hoare triple {2954#true} call #t~ret6 := main(); {2954#true} is VALID [2022-04-14 17:38:36,437 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2954#true} {2954#true} #71#return; {2954#true} is VALID [2022-04-14 17:38:36,437 INFO L290 TraceCheckUtils]: 2: Hoare triple {2954#true} assume true; {2954#true} is VALID [2022-04-14 17:38:36,437 INFO L290 TraceCheckUtils]: 1: Hoare triple {2954#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(13, 2);call #Ultimate.allocInit(12, 3); {2954#true} is VALID [2022-04-14 17:38:36,437 INFO L272 TraceCheckUtils]: 0: Hoare triple {2954#true} call ULTIMATE.init(); {2954#true} is VALID [2022-04-14 17:38:36,437 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 25 proven. 4 refuted. 0 times theorem prover too weak. 22 trivial. 0 not checked. [2022-04-14 17:38:36,437 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 17:38:36,439 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [432006852] [2022-04-14 17:38:36,439 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 17:38:36,439 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1794372115] [2022-04-14 17:38:36,439 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1794372115] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 17:38:36,439 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 17:38:36,439 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 11] total 22 [2022-04-14 17:38:36,439 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2004861338] [2022-04-14 17:38:36,439 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 17:38:36,440 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 55 [2022-04-14 17:38:36,440 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 17:38:36,440 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-14 17:38:39,149 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 64 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-14 17:38:39,149 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-04-14 17:38:39,149 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 17:38:39,150 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-04-14 17:38:39,150 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=87, Invalid=371, Unknown=4, NotChecked=0, Total=462 [2022-04-14 17:38:39,150 INFO L87 Difference]: Start difference. First operand 79 states and 90 transitions. Second operand has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-14 17:39:00,631 WARN L232 SmtUtils]: Spent 6.05s on a formula simplification. DAG size of input: 56 DAG size of output: 34 (called from [L 360] de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate) [2022-04-14 17:39:16,078 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.25s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:21,613 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.11s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:23,773 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.06s for a HTC check with result VALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:25,623 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.42s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:32,708 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.08s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:37,904 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.51s for a HTC check with result VALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:45,348 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-14 17:39:56,043 WARN L232 SmtUtils]: Spent 9.59s on a formula simplification. DAG size of input: 62 DAG size of output: 50 (called from [L 360] de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate) [2022-04-14 17:39:56,573 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:39:56,573 INFO L93 Difference]: Finished difference Result 107 states and 123 transitions. [2022-04-14 17:39:56,573 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 21 states. [2022-04-14 17:39:56,573 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) Word has length 55 [2022-04-14 17:39:56,574 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 17:39:56,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-14 17:39:56,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 75 transitions. [2022-04-14 17:39:56,575 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-14 17:39:56,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 21 states to 21 states and 75 transitions. [2022-04-14 17:39:56,576 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 21 states and 75 transitions. [2022-04-14 17:40:02,611 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 73 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-14 17:40:02,613 INFO L225 Difference]: With dead ends: 107 [2022-04-14 17:40:02,613 INFO L226 Difference]: Without dead ends: 105 [2022-04-14 17:40:02,614 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 121 GetRequests, 88 SyntacticMatches, 4 SemanticMatches, 29 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 160 ImplicationChecksByTransitivity, 48.0s TimeCoverageRelationStatistics Valid=173, Invalid=751, Unknown=6, NotChecked=0, Total=930 [2022-04-14 17:40:02,614 INFO L913 BasicCegarLoop]: 27 mSDtfsCounter, 42 mSDsluCounter, 192 mSDsCounter, 0 mSdLazyCounter, 367 mSolverCounterSat, 32 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 19.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 44 SdHoareTripleChecker+Valid, 219 SdHoareTripleChecker+Invalid, 435 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 32 IncrementalHoareTripleChecker+Valid, 367 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 35 IncrementalHoareTripleChecker+Unchecked, 19.5s IncrementalHoareTripleChecker+Time [2022-04-14 17:40:02,614 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [44 Valid, 219 Invalid, 435 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [32 Valid, 367 Invalid, 1 Unknown, 35 Unchecked, 19.5s Time] [2022-04-14 17:40:02,619 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 105 states. [2022-04-14 17:40:02,650 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 105 to 81. [2022-04-14 17:40:02,650 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 17:40:02,650 INFO L82 GeneralOperation]: Start isEquivalent. First operand 105 states. Second operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:40:02,651 INFO L74 IsIncluded]: Start isIncluded. First operand 105 states. Second operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:40:02,651 INFO L87 Difference]: Start difference. First operand 105 states. Second operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:40:02,653 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:40:02,653 INFO L93 Difference]: Finished difference Result 105 states and 121 transitions. [2022-04-14 17:40:02,653 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 121 transitions. [2022-04-14 17:40:02,653 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:40:02,653 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:40:02,654 INFO L74 IsIncluded]: Start isIncluded. First operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) Second operand 105 states. [2022-04-14 17:40:02,654 INFO L87 Difference]: Start difference. First operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) Second operand 105 states. [2022-04-14 17:40:02,656 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 17:40:02,656 INFO L93 Difference]: Finished difference Result 105 states and 121 transitions. [2022-04-14 17:40:02,656 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 121 transitions. [2022-04-14 17:40:02,656 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 17:40:02,656 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 17:40:02,656 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 17:40:02,656 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 17:40:02,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 81 states, 58 states have (on average 1.1379310344827587) internal successors, (66), 60 states have internal predecessors, (66), 14 states have call successors, (14), 9 states have call predecessors, (14), 8 states have return successors, (13), 11 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 17:40:02,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 93 transitions. [2022-04-14 17:40:02,658 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 93 transitions. Word has length 55 [2022-04-14 17:40:02,658 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 17:40:02,658 INFO L478 AbstractCegarLoop]: Abstraction has 81 states and 93 transitions. [2022-04-14 17:40:02,658 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 22 states have (on average 2.0) internal successors, (44), 20 states have internal predecessors, (44), 7 states have call successors, (12), 2 states have call predecessors, (12), 2 states have return successors, (9), 5 states have call predecessors, (9), 5 states have call successors, (9) [2022-04-14 17:40:02,658 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 93 transitions. [2022-04-14 17:40:02,659 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-14 17:40:02,659 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 17:40:02,659 INFO L499 BasicCegarLoop]: trace histogram [5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 17:40:02,675 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-14 17:40:02,863 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:40:02,865 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 17:40:02,866 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 17:40:02,866 INFO L85 PathProgramCache]: Analyzing trace with hash -699618950, now seen corresponding path program 3 times [2022-04-14 17:40:02,866 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 17:40:02,866 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1578856806] [2022-04-14 17:40:02,866 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 17:40:02,866 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 17:40:02,883 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 17:40:02,883 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [674201165] [2022-04-14 17:40:02,883 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-14 17:40:02,883 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 17:40:02,883 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 17:40:02,884 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 17:40:02,885 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-04-14 17:40:02,948 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 5 check-sat command(s) [2022-04-14 17:40:02,948 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 17:40:02,949 INFO L263 TraceCheckSpWp]: Trace formula consists of 159 conjuncts, 27 conjunts are in the unsatisfiable core [2022-04-14 17:40:02,967 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 17:40:02,968 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 17:40:32,613 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 17:40:40,435 INFO L272 TraceCheckUtils]: 0: Hoare triple {3798#true} call ULTIMATE.init(); {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L290 TraceCheckUtils]: 1: Hoare triple {3798#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(13, 2);call #Ultimate.allocInit(12, 3); {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L290 TraceCheckUtils]: 2: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3798#true} {3798#true} #71#return; {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L272 TraceCheckUtils]: 4: Hoare triple {3798#true} call #t~ret6 := main(); {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L290 TraceCheckUtils]: 5: Hoare triple {3798#true} havoc ~a~0;havoc ~b~0;havoc ~x~0;havoc ~y~0;havoc ~z~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~a~0 := #t~nondet4;havoc #t~nondet4; {3798#true} is VALID [2022-04-14 17:40:40,435 INFO L272 TraceCheckUtils]: 6: Hoare triple {3798#true} call assume_abort_if_not((if ~a~0 >= 0 && ~a~0 <= 20 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,436 INFO L290 TraceCheckUtils]: 7: Hoare triple {3798#true} ~cond := #in~cond; {3798#true} is VALID [2022-04-14 17:40:40,441 INFO L290 TraceCheckUtils]: 8: Hoare triple {3798#true} assume !(0 == ~cond); {3798#true} is VALID [2022-04-14 17:40:40,441 INFO L290 TraceCheckUtils]: 9: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,441 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3798#true} {3798#true} #61#return; {3798#true} is VALID [2022-04-14 17:40:40,441 INFO L290 TraceCheckUtils]: 11: Hoare triple {3798#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~b~0 := #t~nondet5;havoc #t~nondet5; {3798#true} is VALID [2022-04-14 17:40:40,441 INFO L272 TraceCheckUtils]: 12: Hoare triple {3798#true} call assume_abort_if_not((if ~b~0 >= 0 && ~b~0 <= 20 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,442 INFO L290 TraceCheckUtils]: 13: Hoare triple {3798#true} ~cond := #in~cond; {3842#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-14 17:40:40,442 INFO L290 TraceCheckUtils]: 14: Hoare triple {3842#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {3846#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:40:40,442 INFO L290 TraceCheckUtils]: 15: Hoare triple {3846#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {3846#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-14 17:40:40,443 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3846#(not (= |assume_abort_if_not_#in~cond| 0))} {3798#true} #63#return; {3853#(and (<= main_~b~0 20) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,443 INFO L272 TraceCheckUtils]: 17: Hoare triple {3853#(and (<= main_~b~0 20) (<= 0 main_~b~0))} call assume_abort_if_not((if ~b~0 >= 1 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,443 INFO L290 TraceCheckUtils]: 18: Hoare triple {3798#true} ~cond := #in~cond; {3798#true} is VALID [2022-04-14 17:40:40,443 INFO L290 TraceCheckUtils]: 19: Hoare triple {3798#true} assume !(0 == ~cond); {3798#true} is VALID [2022-04-14 17:40:40,443 INFO L290 TraceCheckUtils]: 20: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,443 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3798#true} {3853#(and (<= main_~b~0 20) (<= 0 main_~b~0))} #65#return; {3853#(and (<= main_~b~0 20) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,444 INFO L290 TraceCheckUtils]: 22: Hoare triple {3853#(and (<= main_~b~0 20) (<= 0 main_~b~0))} ~x~0 := ~a~0;~y~0 := ~b~0;~z~0 := 0; {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,444 INFO L290 TraceCheckUtils]: 23: Hoare triple {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} assume !false; {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,444 INFO L272 TraceCheckUtils]: 24: Hoare triple {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,444 INFO L290 TraceCheckUtils]: 25: Hoare triple {3798#true} ~cond := #in~cond; {3798#true} is VALID [2022-04-14 17:40:40,444 INFO L290 TraceCheckUtils]: 26: Hoare triple {3798#true} assume !(0 == ~cond); {3798#true} is VALID [2022-04-14 17:40:40,444 INFO L290 TraceCheckUtils]: 27: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,445 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3798#true} {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} #67#return; {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,445 INFO L290 TraceCheckUtils]: 29: Hoare triple {3872#(and (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} assume !!(0 != ~y~0); {3894#(and (not (= main_~y~0 0)) (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,445 INFO L290 TraceCheckUtils]: 30: Hoare triple {3894#(and (not (= main_~y~0 0)) (<= main_~b~0 20) (= main_~b~0 main_~y~0) (<= 0 main_~b~0))} assume 1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2);~z~0 := ~z~0 + ~x~0;~y~0 := ~y~0 - 1; {3898#(and (<= main_~b~0 20) (<= main_~b~0 (+ main_~y~0 1)) (not (= main_~b~0 0)) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,447 INFO L290 TraceCheckUtils]: 31: Hoare triple {3898#(and (<= main_~b~0 20) (<= main_~b~0 (+ main_~y~0 1)) (not (= main_~b~0 0)) (<= 0 main_~b~0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,447 INFO L290 TraceCheckUtils]: 32: Hoare triple {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} assume !false; {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,447 INFO L272 TraceCheckUtils]: 33: Hoare triple {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,447 INFO L290 TraceCheckUtils]: 34: Hoare triple {3798#true} ~cond := #in~cond; {3798#true} is VALID [2022-04-14 17:40:40,447 INFO L290 TraceCheckUtils]: 35: Hoare triple {3798#true} assume !(0 == ~cond); {3798#true} is VALID [2022-04-14 17:40:40,447 INFO L290 TraceCheckUtils]: 36: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,448 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {3798#true} {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} #67#return; {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,448 INFO L290 TraceCheckUtils]: 38: Hoare triple {3902#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} assume !!(0 != ~y~0); {3924#(and (not (= main_~y~0 0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,449 INFO L290 TraceCheckUtils]: 39: Hoare triple {3924#(and (not (= main_~y~0 0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {3928#(and (not (= main_~y~0 0)) (not (= (mod main_~y~0 2) 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,451 INFO L290 TraceCheckUtils]: 40: Hoare triple {3928#(and (not (= main_~y~0 0)) (not (= (mod main_~y~0 2) 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ main_~y~0 1)))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3932#(and (exists ((aux_div_v_main_~y~0_46_22 Int) (aux_mod_v_main_~y~0_46_22 Int)) (and (<= 0 aux_mod_v_main_~y~0_46_22) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22 1)) (< aux_mod_v_main_~y~0_46_22 2) (<= (div (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22) 2) main_~y~0) (not (= aux_mod_v_main_~y~0_46_22 1)) (not (= (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22) 0)))) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,452 INFO L290 TraceCheckUtils]: 41: Hoare triple {3932#(and (exists ((aux_div_v_main_~y~0_46_22 Int) (aux_mod_v_main_~y~0_46_22 Int)) (and (<= 0 aux_mod_v_main_~y~0_46_22) (< (div (+ 2 (* (- 1) main_~b~0)) (- 2)) (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22 1)) (< aux_mod_v_main_~y~0_46_22 2) (<= (div (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22) 2) main_~y~0) (not (= aux_mod_v_main_~y~0_46_22 1)) (not (= (+ (* aux_div_v_main_~y~0_46_22 2) aux_mod_v_main_~y~0_46_22) 0)))) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0))} assume !false; {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,452 INFO L272 TraceCheckUtils]: 42: Hoare triple {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,452 INFO L290 TraceCheckUtils]: 43: Hoare triple {3798#true} ~cond := #in~cond; {3798#true} is VALID [2022-04-14 17:40:40,452 INFO L290 TraceCheckUtils]: 44: Hoare triple {3798#true} assume !(0 == ~cond); {3798#true} is VALID [2022-04-14 17:40:40,452 INFO L290 TraceCheckUtils]: 45: Hoare triple {3798#true} assume true; {3798#true} is VALID [2022-04-14 17:40:40,453 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {3798#true} {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} #67#return; {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,453 INFO L290 TraceCheckUtils]: 47: Hoare triple {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} assume !!(0 != ~y~0); {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,454 INFO L290 TraceCheckUtils]: 48: Hoare triple {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} is VALID [2022-04-14 17:40:40,455 INFO L290 TraceCheckUtils]: 49: Hoare triple {3936#(and (< (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2)) (+ main_~y~0 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (< 0 main_~y~0) (<= 0 main_~b~0))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3961#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,455 INFO L290 TraceCheckUtils]: 50: Hoare triple {3961#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} assume !false; {3961#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,455 INFO L272 TraceCheckUtils]: 51: Hoare triple {3961#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {3798#true} is VALID [2022-04-14 17:40:40,456 INFO L290 TraceCheckUtils]: 52: Hoare triple {3798#true} ~cond := #in~cond; {3971#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:40:40,456 INFO L290 TraceCheckUtils]: 53: Hoare triple {3971#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3975#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:40:40,456 INFO L290 TraceCheckUtils]: 54: Hoare triple {3975#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3975#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 17:40:40,457 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {3975#(not (= |__VERIFIER_assert_#in~cond| 0))} {3961#(and (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} #67#return; {3982#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,457 INFO L290 TraceCheckUtils]: 56: Hoare triple {3982#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} assume !!(0 != ~y~0); {3982#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:40,459 INFO L290 TraceCheckUtils]: 57: Hoare triple {3982#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} assume !(1 == (if ~y~0 < 0 && 0 != ~y~0 % 2 then ~y~0 % 2 - 2 else ~y~0 % 2)); {3989#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} is VALID [2022-04-14 17:40:41,053 INFO L290 TraceCheckUtils]: 58: Hoare triple {3989#(and (= (+ main_~z~0 (* main_~y~0 main_~x~0)) (* main_~b~0 main_~a~0)) (not (= (mod main_~y~0 2) 1)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ main_~y~0 1)))} ~x~0 := 2 * ~x~0;~y~0 := (if ~y~0 < 0 && 0 != ~y~0 % 2 then 1 + ~y~0 / 2 else ~y~0 / 2); {3993#(and (exists ((aux_div_v_main_~y~0_48_22 Int) (aux_mod_v_main_~y~0_48_22 Int)) (and (not (= aux_mod_v_main_~y~0_48_22 1)) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22 1)) (< aux_mod_v_main_~y~0_48_22 2) (= (+ main_~z~0 (* (div (- main_~x~0) (- 2)) (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22))) (* main_~b~0 main_~a~0)) (= main_~y~0 (div (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22) 2)) (<= 0 aux_mod_v_main_~y~0_48_22))) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-14 17:40:41,952 INFO L290 TraceCheckUtils]: 59: Hoare triple {3993#(and (exists ((aux_div_v_main_~y~0_48_22 Int) (aux_mod_v_main_~y~0_48_22 Int)) (and (not (= aux_mod_v_main_~y~0_48_22 1)) (< (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2)) (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22 1)) (< aux_mod_v_main_~y~0_48_22 2) (= (+ main_~z~0 (* (div (- main_~x~0) (- 2)) (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22))) (* main_~b~0 main_~a~0)) (= main_~y~0 (div (+ (* aux_div_v_main_~y~0_48_22 2) aux_mod_v_main_~y~0_48_22) 2)) (<= 0 aux_mod_v_main_~y~0_48_22))) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} assume !false; {3997#(and (< (div (* (- 1) (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2))) (- 2)) (+ main_~y~0 1)) (= (+ main_~z~0 (* 2 (* (div (* (- 1) main_~x~0) (- 2)) main_~y~0))) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-14 17:40:42,550 INFO L272 TraceCheckUtils]: 60: Hoare triple {3997#(and (< (div (* (- 1) (div (+ (* (- 1) (div (* (- 1) (div (+ 2 (* (- 1) main_~b~0)) (- 2))) (- 2))) 1) (- 2))) (- 2)) (+ main_~y~0 1)) (= (+ main_~z~0 (* 2 (* (div (* (- 1) main_~x~0) (- 2)) main_~y~0))) (* main_~b~0 main_~a~0)) (<= main_~b~0 20) (not (= main_~b~0 0)) (<= 0 main_~b~0) (= (mod main_~x~0 2) 0))} call __VERIFIER_assert((if ~z~0 + ~x~0 * ~y~0 == ~a~0 * ~b~0 then 1 else 0)); {4001#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 17:40:42,551 INFO L290 TraceCheckUtils]: 61: Hoare triple {4001#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4005#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 17:40:42,551 INFO L290 TraceCheckUtils]: 62: Hoare triple {4005#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3799#false} is VALID [2022-04-14 17:40:42,551 INFO L290 TraceCheckUtils]: 63: Hoare triple {3799#false} assume !false; {3799#false} is VALID [2022-04-14 17:40:42,552 INFO L134 CoverageAnalysis]: Checked inductivity of 82 backedges. 19 proven. 42 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2022-04-14 17:40:42,552 INFO L328 TraceCheckSpWp]: Computing backward predicates...