/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/hard2_valuebound100.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-e106359-m [2022-04-14 16:49:50,962 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-14 16:49:50,964 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-14 16:49:51,016 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-14 16:49:51,017 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-14 16:49:51,018 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-14 16:49:51,021 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-14 16:49:51,023 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-14 16:49:51,025 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-14 16:49:51,029 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-14 16:49:51,030 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-14 16:49:51,032 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-14 16:49:51,032 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-14 16:49:51,034 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-14 16:49:51,035 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-14 16:49:51,038 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-14 16:49:51,038 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-14 16:49:51,039 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-14 16:49:51,041 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-14 16:49:51,052 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-14 16:49:51,054 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-14 16:49:51,056 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-14 16:49:51,056 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-14 16:49:51,057 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-14 16:49:51,058 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-14 16:49:51,064 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-14 16:49:51,064 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-14 16:49:51,065 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-14 16:49:51,066 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-14 16:49:51,066 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-14 16:49:51,068 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-14 16:49:51,068 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-14 16:49:51,069 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-14 16:49:51,070 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-14 16:49:51,071 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-14 16:49:51,071 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-14 16:49:51,071 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-14 16:49:51,072 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-14 16:49:51,072 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-14 16:49:51,072 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-14 16:49:51,073 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-14 16:49:51,074 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-14 16:49:51,075 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 16:49:51,109 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-14 16:49:51,109 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-14 16:49:51,110 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-04-14 16:49:51,110 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-04-14 16:49:51,110 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-04-14 16:49:51,111 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-04-14 16:49:51,111 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-04-14 16:49:51,111 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-04-14 16:49:51,111 INFO L138 SettingsManager]: * Use SBE=true [2022-04-14 16:49:51,112 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-14 16:49:51,112 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-14 16:49:51,113 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-14 16:49:51,115 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-14 16:49:51,115 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-14 16:49:51,116 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 16:49:51,116 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-14 16:49:51,116 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-04-14 16:49:51,116 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-04-14 16:49:51,116 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-04-14 16:49:51,116 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-04-14 16:49:51,117 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-04-14 16:49:51,117 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-04-14 16:49:51,117 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-14 16:49:51,117 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 16:49:51,323 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-14 16:49:51,342 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-14 16:49:51,344 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-14 16:49:51,345 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-14 16:49:51,345 INFO L275 PluginConnector]: CDTParser initialized [2022-04-14 16:49:51,346 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/nla-digbench-scaling/hard2_valuebound100.c [2022-04-14 16:49:51,395 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9001f6a34/d94dda3bd3784fcc8dbbed6872ec0b90/FLAG3cc530f9b [2022-04-14 16:49:51,724 INFO L306 CDTParser]: Found 1 translation units. [2022-04-14 16:49:51,725 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/hard2_valuebound100.c [2022-04-14 16:49:51,730 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9001f6a34/d94dda3bd3784fcc8dbbed6872ec0b90/FLAG3cc530f9b [2022-04-14 16:49:52,153 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/9001f6a34/d94dda3bd3784fcc8dbbed6872ec0b90 [2022-04-14 16:49:52,156 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-14 16:49:52,157 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-14 16:49:52,160 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-14 16:49:52,160 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-14 16:49:52,165 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-14 16:49:52,166 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,168 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4286e6e2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52, skipping insertion in model container [2022-04-14 16:49:52,168 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,174 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-14 16:49:52,189 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-14 16:49:52,317 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/hard2_valuebound100.c[526,539] [2022-04-14 16:49:52,331 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 16:49:52,338 INFO L203 MainTranslator]: Completed pre-run [2022-04-14 16:49:52,349 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/hard2_valuebound100.c[526,539] [2022-04-14 16:49:52,356 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-14 16:49:52,367 INFO L208 MainTranslator]: Completed translation [2022-04-14 16:49:52,368 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52 WrapperNode [2022-04-14 16:49:52,368 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-14 16:49:52,369 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-14 16:49:52,369 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-14 16:49:52,369 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-14 16:49:52,378 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,378 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,383 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,383 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,389 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,394 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,395 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,396 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-14 16:49:52,397 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-14 16:49:52,397 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-14 16:49:52,397 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-14 16:49:52,398 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (1/1) ... [2022-04-14 16:49:52,404 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-14 16:49:52,412 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:49:52,422 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 16:49:52,424 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 16:49:52,459 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-14 16:49:52,459 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-14 16:49:52,460 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-14 16:49:52,461 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-14 16:49:52,462 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-14 16:49:52,462 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-14 16:49:52,463 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-14 16:49:52,467 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-14 16:49:52,519 INFO L234 CfgBuilder]: Building ICFG [2022-04-14 16:49:52,521 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-14 16:49:52,733 INFO L275 CfgBuilder]: Performing block encoding [2022-04-14 16:49:52,740 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-14 16:49:52,740 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-04-14 16:49:52,742 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 04:49:52 BoogieIcfgContainer [2022-04-14 16:49:52,742 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-14 16:49:52,743 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-14 16:49:52,743 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-14 16:49:52,746 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-14 16:49:52,747 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 14.04 04:49:52" (1/3) ... [2022-04-14 16:49:52,747 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@3ac3c657 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 04:49:52, skipping insertion in model container [2022-04-14 16:49:52,747 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 14.04 04:49:52" (2/3) ... [2022-04-14 16:49:52,747 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@3ac3c657 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 14.04 04:49:52, skipping insertion in model container [2022-04-14 16:49:52,748 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 14.04 04:49:52" (3/3) ... [2022-04-14 16:49:52,749 INFO L111 eAbstractionObserver]: Analyzing ICFG hard2_valuebound100.c [2022-04-14 16:49:52,753 INFO L202 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-04-14 16:49:52,753 INFO L161 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-14 16:49:52,790 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-14 16:49:52,796 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 16:49:52,796 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-14 16:49:52,812 INFO L276 IsEmpty]: Start isEmpty. Operand has 35 states, 19 states have (on average 1.5263157894736843) internal successors, (29), 20 states have internal predecessors, (29), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-14 16:49:52,817 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 18 [2022-04-14 16:49:52,817 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:52,817 INFO L499 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:52,818 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:52,822 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:52,822 INFO L85 PathProgramCache]: Analyzing trace with hash -977830905, now seen corresponding path program 1 times [2022-04-14 16:49:52,830 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:52,831 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1608767810] [2022-04-14 16:49:52,831 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:52,832 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:52,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,035 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-14 16:49:53,046 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,066 INFO L290 TraceCheckUtils]: 0: Hoare triple {47#(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(8, 2);call #Ultimate.allocInit(12, 3); {38#true} is VALID [2022-04-14 16:49:53,067 INFO L290 TraceCheckUtils]: 1: Hoare triple {38#true} assume true; {38#true} is VALID [2022-04-14 16:49:53,067 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {38#true} {38#true} #94#return; {38#true} is VALID [2022-04-14 16:49:53,068 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-14 16:49:53,073 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,080 INFO L290 TraceCheckUtils]: 0: Hoare triple {38#true} ~cond := #in~cond; {38#true} is VALID [2022-04-14 16:49:53,081 INFO L290 TraceCheckUtils]: 1: Hoare triple {38#true} assume 0 == ~cond;assume false; {39#false} is VALID [2022-04-14 16:49:53,082 INFO L290 TraceCheckUtils]: 2: Hoare triple {39#false} assume true; {39#false} is VALID [2022-04-14 16:49:53,082 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {39#false} {38#true} #78#return; {39#false} is VALID [2022-04-14 16:49:53,083 INFO L272 TraceCheckUtils]: 0: Hoare triple {38#true} call ULTIMATE.init(); {47#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-14 16:49:53,084 INFO L290 TraceCheckUtils]: 1: Hoare triple {47#(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(8, 2);call #Ultimate.allocInit(12, 3); {38#true} is VALID [2022-04-14 16:49:53,084 INFO L290 TraceCheckUtils]: 2: Hoare triple {38#true} assume true; {38#true} is VALID [2022-04-14 16:49:53,084 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {38#true} {38#true} #94#return; {38#true} is VALID [2022-04-14 16:49:53,084 INFO L272 TraceCheckUtils]: 4: Hoare triple {38#true} call #t~ret5 := main(); {38#true} is VALID [2022-04-14 16:49:53,084 INFO L290 TraceCheckUtils]: 5: Hoare triple {38#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {38#true} is VALID [2022-04-14 16:49:53,085 INFO L272 TraceCheckUtils]: 6: Hoare triple {38#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {38#true} is VALID [2022-04-14 16:49:53,085 INFO L290 TraceCheckUtils]: 7: Hoare triple {38#true} ~cond := #in~cond; {38#true} is VALID [2022-04-14 16:49:53,085 INFO L290 TraceCheckUtils]: 8: Hoare triple {38#true} assume 0 == ~cond;assume false; {39#false} is VALID [2022-04-14 16:49:53,086 INFO L290 TraceCheckUtils]: 9: Hoare triple {39#false} assume true; {39#false} is VALID [2022-04-14 16:49:53,086 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {39#false} {38#true} #78#return; {39#false} is VALID [2022-04-14 16:49:53,086 INFO L290 TraceCheckUtils]: 11: Hoare triple {39#false} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {39#false} is VALID [2022-04-14 16:49:53,086 INFO L290 TraceCheckUtils]: 12: Hoare triple {39#false} assume !false; {39#false} is VALID [2022-04-14 16:49:53,086 INFO L272 TraceCheckUtils]: 13: Hoare triple {39#false} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {39#false} is VALID [2022-04-14 16:49:53,087 INFO L290 TraceCheckUtils]: 14: Hoare triple {39#false} ~cond := #in~cond; {39#false} is VALID [2022-04-14 16:49:53,087 INFO L290 TraceCheckUtils]: 15: Hoare triple {39#false} assume 0 == ~cond; {39#false} is VALID [2022-04-14 16:49:53,088 INFO L290 TraceCheckUtils]: 16: Hoare triple {39#false} assume !false; {39#false} is VALID [2022-04-14 16:49:53,088 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-04-14 16:49:53,089 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:53,089 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1608767810] [2022-04-14 16:49:53,090 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1608767810] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:49:53,091 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:49:53,091 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-14 16:49:53,094 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [457871759] [2022-04-14 16:49:53,095 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:53,101 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) Word has length 17 [2022-04-14 16:49:53,102 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:53,105 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,142 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:53,142 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-14 16:49:53,143 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:53,172 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-14 16:49:53,173 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-14 16:49:53,176 INFO L87 Difference]: Start difference. First operand has 35 states, 19 states have (on average 1.5263157894736843) internal successors, (29), 20 states have internal predecessors, (29), 10 states have call successors, (10), 4 states have call predecessors, (10), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,306 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:53,307 INFO L93 Difference]: Finished difference Result 61 states and 95 transitions. [2022-04-14 16:49:53,307 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-14 16:49:53,307 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) Word has length 17 [2022-04-14 16:49:53,307 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:53,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 95 transitions. [2022-04-14 16:49:53,324 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,339 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 95 transitions. [2022-04-14 16:49:53,340 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 95 transitions. [2022-04-14 16:49:53,465 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 95 edges. 95 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:53,479 INFO L225 Difference]: With dead ends: 61 [2022-04-14 16:49:53,479 INFO L226 Difference]: Without dead ends: 30 [2022-04-14 16:49:53,484 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 6 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 16:49:53,490 INFO L913 BasicCegarLoop]: 35 mSDtfsCounter, 20 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 28 SdHoareTripleChecker+Valid, 38 SdHoareTripleChecker+Invalid, 19 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:53,492 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [28 Valid, 38 Invalid, 19 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 16:49:53,528 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 30 states. [2022-04-14 16:49:53,561 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 30 to 30. [2022-04-14 16:49:53,561 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:53,562 INFO L82 GeneralOperation]: Start isEquivalent. First operand 30 states. Second operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:53,562 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:53,563 INFO L87 Difference]: Start difference. First operand 30 states. Second operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:53,566 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:53,566 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-04-14 16:49:53,567 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-04-14 16:49:53,569 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:53,569 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:53,576 INFO L74 IsIncluded]: Start isIncluded. First operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 30 states. [2022-04-14 16:49:53,577 INFO L87 Difference]: Start difference. First operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 30 states. [2022-04-14 16:49:53,584 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:53,584 INFO L93 Difference]: Finished difference Result 30 states and 38 transitions. [2022-04-14 16:49:53,585 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-04-14 16:49:53,585 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:53,585 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:53,586 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:53,586 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:53,586 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 30 states, 16 states have (on average 1.25) internal successors, (20), 17 states have internal predecessors, (20), 10 states have call successors, (10), 4 states have call predecessors, (10), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:53,590 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 38 transitions. [2022-04-14 16:49:53,591 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 38 transitions. Word has length 17 [2022-04-14 16:49:53,591 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:53,591 INFO L478 AbstractCegarLoop]: Abstraction has 30 states and 38 transitions. [2022-04-14 16:49:53,592 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 3.6666666666666665) internal successors, (11), 2 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 2 states have return successors, (2), 2 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,592 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 38 transitions. [2022-04-14 16:49:53,593 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 18 [2022-04-14 16:49:53,593 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:53,593 INFO L499 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:53,593 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-14 16:49:53,593 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:53,594 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:53,594 INFO L85 PathProgramCache]: Analyzing trace with hash -297772535, now seen corresponding path program 1 times [2022-04-14 16:49:53,594 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:53,595 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1207547424] [2022-04-14 16:49:53,595 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:53,595 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:53,615 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,672 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-14 16:49:53,675 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,681 INFO L290 TraceCheckUtils]: 0: Hoare triple {252#(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(8, 2);call #Ultimate.allocInit(12, 3); {240#true} is VALID [2022-04-14 16:49:53,681 INFO L290 TraceCheckUtils]: 1: Hoare triple {240#true} assume true; {240#true} is VALID [2022-04-14 16:49:53,681 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {240#true} {240#true} #94#return; {240#true} is VALID [2022-04-14 16:49:53,682 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-14 16:49:53,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:53,687 INFO L290 TraceCheckUtils]: 0: Hoare triple {240#true} ~cond := #in~cond; {240#true} is VALID [2022-04-14 16:49:53,688 INFO L290 TraceCheckUtils]: 1: Hoare triple {240#true} assume !(0 == ~cond); {240#true} is VALID [2022-04-14 16:49:53,688 INFO L290 TraceCheckUtils]: 2: Hoare triple {240#true} assume true; {240#true} is VALID [2022-04-14 16:49:53,688 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {240#true} {240#true} #78#return; {240#true} is VALID [2022-04-14 16:49:53,689 INFO L272 TraceCheckUtils]: 0: Hoare triple {240#true} call ULTIMATE.init(); {252#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-14 16:49:53,689 INFO L290 TraceCheckUtils]: 1: Hoare triple {252#(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(8, 2);call #Ultimate.allocInit(12, 3); {240#true} is VALID [2022-04-14 16:49:53,689 INFO L290 TraceCheckUtils]: 2: Hoare triple {240#true} assume true; {240#true} is VALID [2022-04-14 16:49:53,690 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {240#true} {240#true} #94#return; {240#true} is VALID [2022-04-14 16:49:53,690 INFO L272 TraceCheckUtils]: 4: Hoare triple {240#true} call #t~ret5 := main(); {240#true} is VALID [2022-04-14 16:49:53,690 INFO L290 TraceCheckUtils]: 5: Hoare triple {240#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {240#true} is VALID [2022-04-14 16:49:53,690 INFO L272 TraceCheckUtils]: 6: Hoare triple {240#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {240#true} is VALID [2022-04-14 16:49:53,690 INFO L290 TraceCheckUtils]: 7: Hoare triple {240#true} ~cond := #in~cond; {240#true} is VALID [2022-04-14 16:49:53,690 INFO L290 TraceCheckUtils]: 8: Hoare triple {240#true} assume !(0 == ~cond); {240#true} is VALID [2022-04-14 16:49:53,691 INFO L290 TraceCheckUtils]: 9: Hoare triple {240#true} assume true; {240#true} is VALID [2022-04-14 16:49:53,691 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {240#true} {240#true} #78#return; {240#true} is VALID [2022-04-14 16:49:53,691 INFO L290 TraceCheckUtils]: 11: Hoare triple {240#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {249#(= main_~q~0 0)} is VALID [2022-04-14 16:49:53,692 INFO L290 TraceCheckUtils]: 12: Hoare triple {249#(= main_~q~0 0)} assume !false; {249#(= main_~q~0 0)} is VALID [2022-04-14 16:49:53,692 INFO L272 TraceCheckUtils]: 13: Hoare triple {249#(= main_~q~0 0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {250#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:49:53,693 INFO L290 TraceCheckUtils]: 14: Hoare triple {250#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {251#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 16:49:53,693 INFO L290 TraceCheckUtils]: 15: Hoare triple {251#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {241#false} is VALID [2022-04-14 16:49:53,694 INFO L290 TraceCheckUtils]: 16: Hoare triple {241#false} assume !false; {241#false} is VALID [2022-04-14 16:49:53,694 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-04-14 16:49:53,694 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:53,694 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1207547424] [2022-04-14 16:49:53,694 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1207547424] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:49:53,695 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:49:53,695 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-14 16:49:53,695 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1216249427] [2022-04-14 16:49:53,695 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:53,696 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 17 [2022-04-14 16:49:53,697 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:53,697 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:53,710 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:53,710 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-14 16:49:53,711 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:53,712 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-14 16:49:53,712 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-14 16:49:53,713 INFO L87 Difference]: Start difference. First operand 30 states and 38 transitions. Second operand has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:54,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,130 INFO L93 Difference]: Finished difference Result 43 states and 55 transitions. [2022-04-14 16:49:54,130 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-14 16:49:54,131 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) Word has length 17 [2022-04-14 16:49:54,131 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:54,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:54,136 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-04-14 16:49:54,137 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:54,142 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-04-14 16:49:54,143 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2022-04-14 16:49:54,211 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:54,216 INFO L225 Difference]: With dead ends: 43 [2022-04-14 16:49:54,217 INFO L226 Difference]: Without dead ends: 41 [2022-04-14 16:49:54,221 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 5 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=28, Invalid=62, Unknown=0, NotChecked=0, Total=90 [2022-04-14 16:49:54,223 INFO L913 BasicCegarLoop]: 28 mSDtfsCounter, 37 mSDsluCounter, 17 mSDsCounter, 0 mSdLazyCounter, 109 mSolverCounterSat, 27 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 41 SdHoareTripleChecker+Valid, 45 SdHoareTripleChecker+Invalid, 136 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 27 IncrementalHoareTripleChecker+Valid, 109 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:54,224 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [41 Valid, 45 Invalid, 136 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [27 Valid, 109 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-14 16:49:54,226 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2022-04-14 16:49:54,238 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 34. [2022-04-14 16:49:54,238 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:54,239 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,240 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,241 INFO L87 Difference]: Start difference. First operand 41 states. Second operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,251 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,251 INFO L93 Difference]: Finished difference Result 41 states and 53 transitions. [2022-04-14 16:49:54,251 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 53 transitions. [2022-04-14 16:49:54,255 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:54,255 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:54,256 INFO L74 IsIncluded]: Start isIncluded. First operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 41 states. [2022-04-14 16:49:54,256 INFO L87 Difference]: Start difference. First operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 41 states. [2022-04-14 16:49:54,259 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,259 INFO L93 Difference]: Finished difference Result 41 states and 53 transitions. [2022-04-14 16:49:54,259 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 53 transitions. [2022-04-14 16:49:54,260 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:54,260 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:54,260 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:54,260 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:54,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 34 states, 19 states have (on average 1.2105263157894737) internal successors, (23), 20 states have internal predecessors, (23), 10 states have call successors, (10), 5 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,262 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 41 transitions. [2022-04-14 16:49:54,262 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 41 transitions. Word has length 17 [2022-04-14 16:49:54,262 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:54,263 INFO L478 AbstractCegarLoop]: Abstraction has 34 states and 41 transitions. [2022-04-14 16:49:54,263 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 1.8333333333333333) internal successors, (11), 4 states have internal predecessors, (11), 2 states have call successors, (4), 3 states have call predecessors, (4), 1 states have return successors, (2), 1 states have call predecessors, (2), 1 states have call successors, (2) [2022-04-14 16:49:54,263 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 41 transitions. [2022-04-14 16:49:54,263 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 23 [2022-04-14 16:49:54,263 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:54,264 INFO L499 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:54,264 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-04-14 16:49:54,264 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:54,264 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:54,265 INFO L85 PathProgramCache]: Analyzing trace with hash -1294462534, now seen corresponding path program 1 times [2022-04-14 16:49:54,265 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:54,265 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1537703257] [2022-04-14 16:49:54,265 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:54,265 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:54,295 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,336 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-14 16:49:54,338 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,343 INFO L290 TraceCheckUtils]: 0: Hoare triple {474#(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(8, 2);call #Ultimate.allocInit(12, 3); {458#true} is VALID [2022-04-14 16:49:54,343 INFO L290 TraceCheckUtils]: 1: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,343 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {458#true} {458#true} #94#return; {458#true} is VALID [2022-04-14 16:49:54,343 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-14 16:49:54,344 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,348 INFO L290 TraceCheckUtils]: 0: Hoare triple {458#true} ~cond := #in~cond; {458#true} is VALID [2022-04-14 16:49:54,348 INFO L290 TraceCheckUtils]: 1: Hoare triple {458#true} assume !(0 == ~cond); {458#true} is VALID [2022-04-14 16:49:54,349 INFO L290 TraceCheckUtils]: 2: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,349 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {458#true} {458#true} #78#return; {458#true} is VALID [2022-04-14 16:49:54,349 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 13 [2022-04-14 16:49:54,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,355 INFO L290 TraceCheckUtils]: 0: Hoare triple {458#true} ~cond := #in~cond; {458#true} is VALID [2022-04-14 16:49:54,355 INFO L290 TraceCheckUtils]: 1: Hoare triple {458#true} assume !(0 == ~cond); {458#true} is VALID [2022-04-14 16:49:54,356 INFO L290 TraceCheckUtils]: 2: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,356 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {458#true} {467#(= main_~A~0 main_~r~0)} #80#return; {467#(= main_~A~0 main_~r~0)} is VALID [2022-04-14 16:49:54,357 INFO L272 TraceCheckUtils]: 0: Hoare triple {458#true} call ULTIMATE.init(); {474#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-14 16:49:54,357 INFO L290 TraceCheckUtils]: 1: Hoare triple {474#(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(8, 2);call #Ultimate.allocInit(12, 3); {458#true} is VALID [2022-04-14 16:49:54,358 INFO L290 TraceCheckUtils]: 2: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,358 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {458#true} {458#true} #94#return; {458#true} is VALID [2022-04-14 16:49:54,358 INFO L272 TraceCheckUtils]: 4: Hoare triple {458#true} call #t~ret5 := main(); {458#true} is VALID [2022-04-14 16:49:54,358 INFO L290 TraceCheckUtils]: 5: Hoare triple {458#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {458#true} is VALID [2022-04-14 16:49:54,358 INFO L272 TraceCheckUtils]: 6: Hoare triple {458#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {458#true} is VALID [2022-04-14 16:49:54,358 INFO L290 TraceCheckUtils]: 7: Hoare triple {458#true} ~cond := #in~cond; {458#true} is VALID [2022-04-14 16:49:54,359 INFO L290 TraceCheckUtils]: 8: Hoare triple {458#true} assume !(0 == ~cond); {458#true} is VALID [2022-04-14 16:49:54,359 INFO L290 TraceCheckUtils]: 9: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,359 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {458#true} {458#true} #78#return; {458#true} is VALID [2022-04-14 16:49:54,362 INFO L290 TraceCheckUtils]: 11: Hoare triple {458#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {467#(= main_~A~0 main_~r~0)} is VALID [2022-04-14 16:49:54,363 INFO L290 TraceCheckUtils]: 12: Hoare triple {467#(= main_~A~0 main_~r~0)} assume !false; {467#(= main_~A~0 main_~r~0)} is VALID [2022-04-14 16:49:54,364 INFO L272 TraceCheckUtils]: 13: Hoare triple {467#(= main_~A~0 main_~r~0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {458#true} is VALID [2022-04-14 16:49:54,364 INFO L290 TraceCheckUtils]: 14: Hoare triple {458#true} ~cond := #in~cond; {458#true} is VALID [2022-04-14 16:49:54,364 INFO L290 TraceCheckUtils]: 15: Hoare triple {458#true} assume !(0 == ~cond); {458#true} is VALID [2022-04-14 16:49:54,364 INFO L290 TraceCheckUtils]: 16: Hoare triple {458#true} assume true; {458#true} is VALID [2022-04-14 16:49:54,367 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {458#true} {467#(= main_~A~0 main_~r~0)} #80#return; {467#(= main_~A~0 main_~r~0)} is VALID [2022-04-14 16:49:54,370 INFO L272 TraceCheckUtils]: 18: Hoare triple {467#(= main_~A~0 main_~r~0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {472#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:49:54,370 INFO L290 TraceCheckUtils]: 19: Hoare triple {472#(not (= |__VERIFIER_assert_#in~cond| 0))} ~cond := #in~cond; {473#(not (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 16:49:54,371 INFO L290 TraceCheckUtils]: 20: Hoare triple {473#(not (= __VERIFIER_assert_~cond 0))} assume 0 == ~cond; {459#false} is VALID [2022-04-14 16:49:54,371 INFO L290 TraceCheckUtils]: 21: Hoare triple {459#false} assume !false; {459#false} is VALID [2022-04-14 16:49:54,371 INFO L134 CoverageAnalysis]: Checked inductivity of 2 backedges. 2 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-04-14 16:49:54,372 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:54,372 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1537703257] [2022-04-14 16:49:54,372 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1537703257] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:49:54,372 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:49:54,372 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-04-14 16:49:54,372 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1513667420] [2022-04-14 16:49:54,372 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:54,373 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-04-14 16:49:54,373 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:54,373 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-14 16:49:54,391 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 16:49:54,391 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-04-14 16:49:54,391 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:54,392 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-04-14 16:49:54,392 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=9, Invalid=21, Unknown=0, NotChecked=0, Total=30 [2022-04-14 16:49:54,392 INFO L87 Difference]: Start difference. First operand 34 states and 41 transitions. Second operand has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-14 16:49:54,813 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,814 INFO L93 Difference]: Finished difference Result 47 states and 58 transitions. [2022-04-14 16:49:54,814 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-14 16:49:54,814 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 22 [2022-04-14 16:49:54,815 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:54,815 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-14 16:49:54,817 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-04-14 16:49:54,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-14 16:49:54,818 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2022-04-14 16:49:54,819 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2022-04-14 16:49:54,877 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:54,879 INFO L225 Difference]: With dead ends: 47 [2022-04-14 16:49:54,879 INFO L226 Difference]: Without dead ends: 45 [2022-04-14 16:49:54,879 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=28, Invalid=62, Unknown=0, NotChecked=0, Total=90 [2022-04-14 16:49:54,881 INFO L913 BasicCegarLoop]: 28 mSDtfsCounter, 32 mSDsluCounter, 17 mSDsCounter, 0 mSdLazyCounter, 115 mSolverCounterSat, 26 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 36 SdHoareTripleChecker+Valid, 45 SdHoareTripleChecker+Invalid, 141 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 26 IncrementalHoareTripleChecker+Valid, 115 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:54,881 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [36 Valid, 45 Invalid, 141 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [26 Valid, 115 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-14 16:49:54,882 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2022-04-14 16:49:54,887 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 38. [2022-04-14 16:49:54,887 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:54,887 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,888 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,888 INFO L87 Difference]: Start difference. First operand 45 states. Second operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,891 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,891 INFO L93 Difference]: Finished difference Result 45 states and 56 transitions. [2022-04-14 16:49:54,891 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 56 transitions. [2022-04-14 16:49:54,892 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:54,892 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:54,892 INFO L74 IsIncluded]: Start isIncluded. First operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 45 states. [2022-04-14 16:49:54,892 INFO L87 Difference]: Start difference. First operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 45 states. [2022-04-14 16:49:54,895 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:54,895 INFO L93 Difference]: Finished difference Result 45 states and 56 transitions. [2022-04-14 16:49:54,895 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 56 transitions. [2022-04-14 16:49:54,895 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:54,896 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:54,896 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:54,896 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:54,896 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 38 states, 22 states have (on average 1.1818181818181819) internal successors, (26), 23 states have internal predecessors, (26), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-14 16:49:54,898 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 44 transitions. [2022-04-14 16:49:54,898 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 44 transitions. Word has length 22 [2022-04-14 16:49:54,898 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:54,899 INFO L478 AbstractCegarLoop]: Abstraction has 38 states and 44 transitions. [2022-04-14 16:49:54,899 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 2.3333333333333335) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (5), 3 states have call predecessors, (5), 1 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-04-14 16:49:54,899 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 44 transitions. [2022-04-14 16:49:54,900 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 28 [2022-04-14 16:49:54,900 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:54,900 INFO L499 BasicCegarLoop]: trace histogram [3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:54,900 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-04-14 16:49:54,900 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:54,901 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:54,901 INFO L85 PathProgramCache]: Analyzing trace with hash -1449027479, now seen corresponding path program 1 times [2022-04-14 16:49:54,901 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:54,901 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1127139765] [2022-04-14 16:49:54,901 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:54,902 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:54,915 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:49:54,916 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [50595669] [2022-04-14 16:49:54,916 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:54,916 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:54,916 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:49:54,918 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 16:49:54,945 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 16:49:54,977 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,980 INFO L263 TraceCheckSpWp]: Trace formula consists of 90 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-14 16:49:54,989 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:54,995 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:49:55,213 INFO L272 TraceCheckUtils]: 0: Hoare triple {698#true} call ULTIMATE.init(); {698#true} is VALID [2022-04-14 16:49:55,214 INFO L290 TraceCheckUtils]: 1: Hoare triple {698#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(8, 2);call #Ultimate.allocInit(12, 3); {698#true} is VALID [2022-04-14 16:49:55,214 INFO L290 TraceCheckUtils]: 2: Hoare triple {698#true} assume true; {698#true} is VALID [2022-04-14 16:49:55,214 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {698#true} {698#true} #94#return; {698#true} is VALID [2022-04-14 16:49:55,214 INFO L272 TraceCheckUtils]: 4: Hoare triple {698#true} call #t~ret5 := main(); {698#true} is VALID [2022-04-14 16:49:55,215 INFO L290 TraceCheckUtils]: 5: Hoare triple {698#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {698#true} is VALID [2022-04-14 16:49:55,215 INFO L272 TraceCheckUtils]: 6: Hoare triple {698#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {698#true} is VALID [2022-04-14 16:49:55,215 INFO L290 TraceCheckUtils]: 7: Hoare triple {698#true} ~cond := #in~cond; {698#true} is VALID [2022-04-14 16:49:55,215 INFO L290 TraceCheckUtils]: 8: Hoare triple {698#true} assume !(0 == ~cond); {698#true} is VALID [2022-04-14 16:49:55,215 INFO L290 TraceCheckUtils]: 9: Hoare triple {698#true} assume true; {698#true} is VALID [2022-04-14 16:49:55,215 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {698#true} {698#true} #78#return; {698#true} is VALID [2022-04-14 16:49:55,232 INFO L290 TraceCheckUtils]: 11: Hoare triple {698#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:55,233 INFO L290 TraceCheckUtils]: 12: Hoare triple {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:55,233 INFO L272 TraceCheckUtils]: 13: Hoare triple {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {698#true} is VALID [2022-04-14 16:49:55,233 INFO L290 TraceCheckUtils]: 14: Hoare triple {698#true} ~cond := #in~cond; {698#true} is VALID [2022-04-14 16:49:55,233 INFO L290 TraceCheckUtils]: 15: Hoare triple {698#true} assume !(0 == ~cond); {698#true} is VALID [2022-04-14 16:49:55,233 INFO L290 TraceCheckUtils]: 16: Hoare triple {698#true} assume true; {698#true} is VALID [2022-04-14 16:49:55,234 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {698#true} {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #80#return; {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:55,234 INFO L272 TraceCheckUtils]: 18: Hoare triple {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {698#true} is VALID [2022-04-14 16:49:55,235 INFO L290 TraceCheckUtils]: 19: Hoare triple {698#true} ~cond := #in~cond; {698#true} is VALID [2022-04-14 16:49:55,235 INFO L290 TraceCheckUtils]: 20: Hoare triple {698#true} assume !(0 == ~cond); {698#true} is VALID [2022-04-14 16:49:55,235 INFO L290 TraceCheckUtils]: 21: Hoare triple {698#true} assume true; {698#true} is VALID [2022-04-14 16:49:55,236 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {698#true} {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #82#return; {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:55,237 INFO L272 TraceCheckUtils]: 23: Hoare triple {736#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {773#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:55,237 INFO L290 TraceCheckUtils]: 24: Hoare triple {773#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {777#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:55,238 INFO L290 TraceCheckUtils]: 25: Hoare triple {777#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {699#false} is VALID [2022-04-14 16:49:55,238 INFO L290 TraceCheckUtils]: 26: Hoare triple {699#false} assume !false; {699#false} is VALID [2022-04-14 16:49:55,238 INFO L134 CoverageAnalysis]: Checked inductivity of 8 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 4 trivial. 0 not checked. [2022-04-14 16:49:55,239 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 16:49:55,239 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:55,239 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1127139765] [2022-04-14 16:49:55,239 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:49:55,239 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [50595669] [2022-04-14 16:49:55,239 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [50595669] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:49:55,240 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:49:55,240 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-14 16:49:55,240 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1688404718] [2022-04-14 16:49:55,240 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:55,241 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 27 [2022-04-14 16:49:55,241 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:55,241 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 16:49:55,273 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:55,273 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-14 16:49:55,274 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:55,274 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-14 16:49:55,274 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-04-14 16:49:55,275 INFO L87 Difference]: Start difference. First operand 38 states and 44 transitions. Second operand has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 16:49:55,450 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:55,450 INFO L93 Difference]: Finished difference Result 66 states and 84 transitions. [2022-04-14 16:49:55,450 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 16:49:55,451 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 27 [2022-04-14 16:49:55,451 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:55,452 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 16:49:55,454 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 78 transitions. [2022-04-14 16:49:55,454 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 16:49:55,456 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 78 transitions. [2022-04-14 16:49:55,456 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 78 transitions. [2022-04-14 16:49:55,526 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:55,528 INFO L225 Difference]: With dead ends: 66 [2022-04-14 16:49:55,528 INFO L226 Difference]: Without dead ends: 52 [2022-04-14 16:49:55,528 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 23 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 16:49:55,529 INFO L913 BasicCegarLoop]: 40 mSDtfsCounter, 8 mSDsluCounter, 88 mSDsCounter, 0 mSdLazyCounter, 47 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 128 SdHoareTripleChecker+Invalid, 50 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 47 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:55,530 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 128 Invalid, 50 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 47 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 16:49:55,531 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-14 16:49:55,541 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 52. [2022-04-14 16:49:55,542 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:55,543 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 16:49:55,545 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 16:49:55,545 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 16:49:55,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:55,549 INFO L93 Difference]: Finished difference Result 52 states and 63 transitions. [2022-04-14 16:49:55,549 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2022-04-14 16:49:55,553 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:55,553 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:55,554 INFO L74 IsIncluded]: Start isIncluded. First operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 52 states. [2022-04-14 16:49:55,556 INFO L87 Difference]: Start difference. First operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 52 states. [2022-04-14 16:49:55,560 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:55,561 INFO L93 Difference]: Finished difference Result 52 states and 63 transitions. [2022-04-14 16:49:55,561 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2022-04-14 16:49:55,561 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:55,561 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:55,562 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:55,562 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:55,562 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 52 states, 29 states have (on average 1.1724137931034482) internal successors, (34), 31 states have internal predecessors, (34), 16 states have call successors, (16), 7 states have call predecessors, (16), 6 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-14 16:49:55,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 63 transitions. [2022-04-14 16:49:55,564 INFO L78 Accepts]: Start accepts. Automaton has 52 states and 63 transitions. Word has length 27 [2022-04-14 16:49:55,565 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:55,565 INFO L478 AbstractCegarLoop]: Abstraction has 52 states and 63 transitions. [2022-04-14 16:49:55,565 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 2.8) internal successors, (14), 4 states have internal predecessors, (14), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-14 16:49:55,566 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 63 transitions. [2022-04-14 16:49:55,567 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-04-14 16:49:55,567 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:55,567 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 1, 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 16:49:55,595 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 16:49:55,791 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:55,791 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:55,792 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:55,792 INFO L85 PathProgramCache]: Analyzing trace with hash 905213191, now seen corresponding path program 1 times [2022-04-14 16:49:55,792 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:55,792 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1813076080] [2022-04-14 16:49:55,792 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:55,792 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:55,807 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:49:55,807 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1906958986] [2022-04-14 16:49:55,807 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:55,808 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:55,808 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:49:55,816 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 16:49:55,817 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 16:49:55,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:55,856 INFO L263 TraceCheckSpWp]: Trace formula consists of 101 conjuncts, 7 conjunts are in the unsatisfiable core [2022-04-14 16:49:55,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:55,871 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:49:56,047 INFO L272 TraceCheckUtils]: 0: Hoare triple {1063#true} call ULTIMATE.init(); {1063#true} is VALID [2022-04-14 16:49:56,047 INFO L290 TraceCheckUtils]: 1: Hoare triple {1063#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(8, 2);call #Ultimate.allocInit(12, 3); {1063#true} is VALID [2022-04-14 16:49:56,048 INFO L290 TraceCheckUtils]: 2: Hoare triple {1063#true} assume true; {1063#true} is VALID [2022-04-14 16:49:56,048 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1063#true} {1063#true} #94#return; {1063#true} is VALID [2022-04-14 16:49:56,048 INFO L272 TraceCheckUtils]: 4: Hoare triple {1063#true} call #t~ret5 := main(); {1063#true} is VALID [2022-04-14 16:49:56,048 INFO L290 TraceCheckUtils]: 5: Hoare triple {1063#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {1063#true} is VALID [2022-04-14 16:49:56,048 INFO L272 TraceCheckUtils]: 6: Hoare triple {1063#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {1063#true} is VALID [2022-04-14 16:49:56,049 INFO L290 TraceCheckUtils]: 7: Hoare triple {1063#true} ~cond := #in~cond; {1063#true} is VALID [2022-04-14 16:49:56,049 INFO L290 TraceCheckUtils]: 8: Hoare triple {1063#true} assume !(0 == ~cond); {1063#true} is VALID [2022-04-14 16:49:56,049 INFO L290 TraceCheckUtils]: 9: Hoare triple {1063#true} assume true; {1063#true} is VALID [2022-04-14 16:49:56,049 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1063#true} {1063#true} #78#return; {1063#true} is VALID [2022-04-14 16:49:56,051 INFO L290 TraceCheckUtils]: 11: Hoare triple {1063#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,060 INFO L290 TraceCheckUtils]: 12: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} assume !false; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,060 INFO L272 TraceCheckUtils]: 13: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {1063#true} is VALID [2022-04-14 16:49:56,060 INFO L290 TraceCheckUtils]: 14: Hoare triple {1063#true} ~cond := #in~cond; {1063#true} is VALID [2022-04-14 16:49:56,060 INFO L290 TraceCheckUtils]: 15: Hoare triple {1063#true} assume !(0 == ~cond); {1063#true} is VALID [2022-04-14 16:49:56,061 INFO L290 TraceCheckUtils]: 16: Hoare triple {1063#true} assume true; {1063#true} is VALID [2022-04-14 16:49:56,061 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1063#true} {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} #80#return; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,062 INFO L272 TraceCheckUtils]: 18: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {1063#true} is VALID [2022-04-14 16:49:56,062 INFO L290 TraceCheckUtils]: 19: Hoare triple {1063#true} ~cond := #in~cond; {1063#true} is VALID [2022-04-14 16:49:56,062 INFO L290 TraceCheckUtils]: 20: Hoare triple {1063#true} assume !(0 == ~cond); {1063#true} is VALID [2022-04-14 16:49:56,062 INFO L290 TraceCheckUtils]: 21: Hoare triple {1063#true} assume true; {1063#true} is VALID [2022-04-14 16:49:56,063 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1063#true} {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} #82#return; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,063 INFO L272 TraceCheckUtils]: 23: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {1063#true} is VALID [2022-04-14 16:49:56,063 INFO L290 TraceCheckUtils]: 24: Hoare triple {1063#true} ~cond := #in~cond; {1063#true} is VALID [2022-04-14 16:49:56,063 INFO L290 TraceCheckUtils]: 25: Hoare triple {1063#true} assume !(0 == ~cond); {1063#true} is VALID [2022-04-14 16:49:56,064 INFO L290 TraceCheckUtils]: 26: Hoare triple {1063#true} assume true; {1063#true} is VALID [2022-04-14 16:49:56,064 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1063#true} {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} #84#return; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,065 INFO L290 TraceCheckUtils]: 28: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} assume !(~r~0 >= ~d~0); {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,065 INFO L290 TraceCheckUtils]: 29: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} assume !false; {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} is VALID [2022-04-14 16:49:56,066 INFO L272 TraceCheckUtils]: 30: Hoare triple {1101#(and (= main_~A~0 main_~r~0) (= main_~q~0 0))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {1159#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:56,067 INFO L290 TraceCheckUtils]: 31: Hoare triple {1159#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1163#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:56,067 INFO L290 TraceCheckUtils]: 32: Hoare triple {1163#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1064#false} is VALID [2022-04-14 16:49:56,067 INFO L290 TraceCheckUtils]: 33: Hoare triple {1064#false} assume !false; {1064#false} is VALID [2022-04-14 16:49:56,068 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-14 16:49:56,068 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 16:49:56,068 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:56,068 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1813076080] [2022-04-14 16:49:56,068 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:49:56,068 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1906958986] [2022-04-14 16:49:56,069 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1906958986] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:49:56,069 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:49:56,069 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-14 16:49:56,069 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [908072077] [2022-04-14 16:49:56,069 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:56,070 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 34 [2022-04-14 16:49:56,070 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:56,070 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 16:49:56,091 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:56,091 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-14 16:49:56,091 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:56,092 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-14 16:49:56,092 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-04-14 16:49:56,092 INFO L87 Difference]: Start difference. First operand 52 states and 63 transitions. Second operand has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 16:49:56,261 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:56,262 INFO L93 Difference]: Finished difference Result 65 states and 80 transitions. [2022-04-14 16:49:56,262 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 16:49:56,262 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 34 [2022-04-14 16:49:56,262 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:56,262 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 16:49:56,264 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 55 transitions. [2022-04-14 16:49:56,264 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 16:49:56,265 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 55 transitions. [2022-04-14 16:49:56,265 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 55 transitions. [2022-04-14 16:49:56,309 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:56,311 INFO L225 Difference]: With dead ends: 65 [2022-04-14 16:49:56,311 INFO L226 Difference]: Without dead ends: 58 [2022-04-14 16:49:56,311 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 34 GetRequests, 30 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 16:49:56,312 INFO L913 BasicCegarLoop]: 31 mSDtfsCounter, 9 mSDsluCounter, 72 mSDsCounter, 0 mSdLazyCounter, 49 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 103 SdHoareTripleChecker+Invalid, 52 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 49 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:56,313 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 103 Invalid, 52 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 49 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 16:49:56,313 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2022-04-14 16:49:56,322 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 57. [2022-04-14 16:49:56,322 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:56,323 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) [2022-04-14 16:49:56,323 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) [2022-04-14 16:49:56,323 INFO L87 Difference]: Start difference. First operand 58 states. Second operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) [2022-04-14 16:49:56,326 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:56,326 INFO L93 Difference]: Finished difference Result 58 states and 70 transitions. [2022-04-14 16:49:56,326 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 70 transitions. [2022-04-14 16:49:56,326 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:56,326 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:56,327 INFO L74 IsIncluded]: Start isIncluded. First operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) Second operand 58 states. [2022-04-14 16:49:56,327 INFO L87 Difference]: Start difference. First operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) Second operand 58 states. [2022-04-14 16:49:56,329 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:56,329 INFO L93 Difference]: Finished difference Result 58 states and 70 transitions. [2022-04-14 16:49:56,329 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 70 transitions. [2022-04-14 16:49:56,330 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:56,330 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:56,330 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:56,330 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:56,330 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 57 states, 33 states have (on average 1.1818181818181819) internal successors, (39), 35 states have internal predecessors, (39), 16 states have call successors, (16), 8 states have call predecessors, (16), 7 states have return successors, (14), 13 states have call predecessors, (14), 14 states have call successors, (14) [2022-04-14 16:49:56,333 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 69 transitions. [2022-04-14 16:49:56,333 INFO L78 Accepts]: Start accepts. Automaton has 57 states and 69 transitions. Word has length 34 [2022-04-14 16:49:56,333 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:56,333 INFO L478 AbstractCegarLoop]: Abstraction has 57 states and 69 transitions. [2022-04-14 16:49:56,333 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 3.2) internal successors, (16), 4 states have internal predecessors, (16), 2 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 16:49:56,334 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 69 transitions. [2022-04-14 16:49:56,334 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2022-04-14 16:49:56,334 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:56,334 INFO L499 BasicCegarLoop]: trace histogram [6, 5, 5, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:56,362 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 16:49:56,559 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:56,560 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:56,560 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:56,560 INFO L85 PathProgramCache]: Analyzing trace with hash -1576096488, now seen corresponding path program 1 times [2022-04-14 16:49:56,560 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:56,561 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1585659144] [2022-04-14 16:49:56,561 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:56,561 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:56,580 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:49:56,580 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [888317023] [2022-04-14 16:49:56,580 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:56,580 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:56,580 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:49:56,581 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 16:49:56,609 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 16:49:56,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:56,634 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-14 16:49:56,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:56,646 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:49:56,875 INFO L272 TraceCheckUtils]: 0: Hoare triple {1465#true} call ULTIMATE.init(); {1465#true} is VALID [2022-04-14 16:49:56,875 INFO L290 TraceCheckUtils]: 1: Hoare triple {1465#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(8, 2);call #Ultimate.allocInit(12, 3); {1465#true} is VALID [2022-04-14 16:49:56,875 INFO L290 TraceCheckUtils]: 2: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,875 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1465#true} {1465#true} #94#return; {1465#true} is VALID [2022-04-14 16:49:56,875 INFO L272 TraceCheckUtils]: 4: Hoare triple {1465#true} call #t~ret5 := main(); {1465#true} is VALID [2022-04-14 16:49:56,875 INFO L290 TraceCheckUtils]: 5: Hoare triple {1465#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {1465#true} is VALID [2022-04-14 16:49:56,876 INFO L272 TraceCheckUtils]: 6: Hoare triple {1465#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,876 INFO L290 TraceCheckUtils]: 7: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,876 INFO L290 TraceCheckUtils]: 8: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,876 INFO L290 TraceCheckUtils]: 9: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,876 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1465#true} {1465#true} #78#return; {1465#true} is VALID [2022-04-14 16:49:56,877 INFO L290 TraceCheckUtils]: 11: Hoare triple {1465#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:56,877 INFO L290 TraceCheckUtils]: 12: Hoare triple {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:56,877 INFO L272 TraceCheckUtils]: 13: Hoare triple {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,877 INFO L290 TraceCheckUtils]: 14: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,877 INFO L290 TraceCheckUtils]: 15: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,877 INFO L290 TraceCheckUtils]: 16: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,878 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1465#true} {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #80#return; {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:56,878 INFO L272 TraceCheckUtils]: 18: Hoare triple {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,878 INFO L290 TraceCheckUtils]: 19: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,878 INFO L290 TraceCheckUtils]: 20: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,878 INFO L290 TraceCheckUtils]: 21: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,879 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1465#true} {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #82#return; {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:56,879 INFO L272 TraceCheckUtils]: 23: Hoare triple {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,879 INFO L290 TraceCheckUtils]: 24: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,879 INFO L290 TraceCheckUtils]: 25: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,879 INFO L290 TraceCheckUtils]: 26: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,880 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1465#true} {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #84#return; {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:56,881 INFO L290 TraceCheckUtils]: 28: Hoare triple {1503#(and (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} is VALID [2022-04-14 16:49:56,882 INFO L290 TraceCheckUtils]: 29: Hoare triple {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} assume !false; {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} is VALID [2022-04-14 16:49:56,882 INFO L272 TraceCheckUtils]: 30: Hoare triple {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,882 INFO L290 TraceCheckUtils]: 31: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,882 INFO L290 TraceCheckUtils]: 32: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,882 INFO L290 TraceCheckUtils]: 33: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,883 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1465#true} {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} #80#return; {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} is VALID [2022-04-14 16:49:56,884 INFO L272 TraceCheckUtils]: 35: Hoare triple {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:56,884 INFO L290 TraceCheckUtils]: 36: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:56,884 INFO L290 TraceCheckUtils]: 37: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:56,884 INFO L290 TraceCheckUtils]: 38: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:56,889 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {1465#true} {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} #82#return; {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} is VALID [2022-04-14 16:49:56,890 INFO L272 TraceCheckUtils]: 40: Hoare triple {1555#(and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {1592#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:56,890 INFO L290 TraceCheckUtils]: 41: Hoare triple {1592#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1596#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:56,891 INFO L290 TraceCheckUtils]: 42: Hoare triple {1596#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1466#false} is VALID [2022-04-14 16:49:56,891 INFO L290 TraceCheckUtils]: 43: Hoare triple {1466#false} assume !false; {1466#false} is VALID [2022-04-14 16:49:56,891 INFO L134 CoverageAnalysis]: Checked inductivity of 54 backedges. 10 proven. 4 refuted. 0 times theorem prover too weak. 40 trivial. 0 not checked. [2022-04-14 16:49:56,891 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:49:57,128 INFO L290 TraceCheckUtils]: 43: Hoare triple {1466#false} assume !false; {1466#false} is VALID [2022-04-14 16:49:57,129 INFO L290 TraceCheckUtils]: 42: Hoare triple {1596#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1466#false} is VALID [2022-04-14 16:49:57,130 INFO L290 TraceCheckUtils]: 41: Hoare triple {1592#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1596#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:57,130 INFO L272 TraceCheckUtils]: 40: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {1592#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:57,131 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {1465#true} {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} #82#return; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,131 INFO L290 TraceCheckUtils]: 38: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,131 INFO L290 TraceCheckUtils]: 37: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,131 INFO L290 TraceCheckUtils]: 36: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,131 INFO L272 TraceCheckUtils]: 35: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,133 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {1465#true} {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} #80#return; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,133 INFO L290 TraceCheckUtils]: 33: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,133 INFO L290 TraceCheckUtils]: 32: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,133 INFO L290 TraceCheckUtils]: 31: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,133 INFO L272 TraceCheckUtils]: 30: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,137 INFO L290 TraceCheckUtils]: 29: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} assume !false; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,139 INFO L290 TraceCheckUtils]: 28: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,140 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {1465#true} {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} #84#return; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,140 INFO L290 TraceCheckUtils]: 26: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,141 INFO L290 TraceCheckUtils]: 25: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,141 INFO L290 TraceCheckUtils]: 24: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,141 INFO L272 TraceCheckUtils]: 23: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,141 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {1465#true} {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} #82#return; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,141 INFO L290 TraceCheckUtils]: 21: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,142 INFO L290 TraceCheckUtils]: 20: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,142 INFO L290 TraceCheckUtils]: 19: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,142 INFO L272 TraceCheckUtils]: 18: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,142 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {1465#true} {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} #80#return; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,142 INFO L290 TraceCheckUtils]: 16: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,143 INFO L290 TraceCheckUtils]: 15: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,143 INFO L290 TraceCheckUtils]: 14: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,143 INFO L272 TraceCheckUtils]: 13: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,143 INFO L290 TraceCheckUtils]: 12: Hoare triple {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} assume !false; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,144 INFO L290 TraceCheckUtils]: 11: Hoare triple {1465#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {1612#(= (* main_~B~0 main_~p~0) main_~d~0)} is VALID [2022-04-14 16:49:57,144 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1465#true} {1465#true} #78#return; {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L290 TraceCheckUtils]: 9: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L290 TraceCheckUtils]: 8: Hoare triple {1465#true} assume !(0 == ~cond); {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L290 TraceCheckUtils]: 7: Hoare triple {1465#true} ~cond := #in~cond; {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L272 TraceCheckUtils]: 6: Hoare triple {1465#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L290 TraceCheckUtils]: 5: Hoare triple {1465#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {1465#true} is VALID [2022-04-14 16:49:57,144 INFO L272 TraceCheckUtils]: 4: Hoare triple {1465#true} call #t~ret5 := main(); {1465#true} is VALID [2022-04-14 16:49:57,145 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1465#true} {1465#true} #94#return; {1465#true} is VALID [2022-04-14 16:49:57,145 INFO L290 TraceCheckUtils]: 2: Hoare triple {1465#true} assume true; {1465#true} is VALID [2022-04-14 16:49:57,145 INFO L290 TraceCheckUtils]: 1: Hoare triple {1465#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(8, 2);call #Ultimate.allocInit(12, 3); {1465#true} is VALID [2022-04-14 16:49:57,145 INFO L272 TraceCheckUtils]: 0: Hoare triple {1465#true} call ULTIMATE.init(); {1465#true} is VALID [2022-04-14 16:49:57,145 INFO L134 CoverageAnalysis]: Checked inductivity of 54 backedges. 10 proven. 0 refuted. 0 times theorem prover too weak. 44 trivial. 0 not checked. [2022-04-14 16:49:57,145 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:49:57,145 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1585659144] [2022-04-14 16:49:57,146 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:49:57,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [888317023] [2022-04-14 16:49:57,146 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [888317023] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-14 16:49:57,146 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-14 16:49:57,146 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [6] total 7 [2022-04-14 16:49:57,146 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1988775415] [2022-04-14 16:49:57,146 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:49:57,147 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 44 [2022-04-14 16:49:57,147 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:49:57,147 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 16:49:57,168 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:57,169 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-14 16:49:57,169 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:49:57,169 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-14 16:49:57,169 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=29, Unknown=0, NotChecked=0, Total=42 [2022-04-14 16:49:57,170 INFO L87 Difference]: Start difference. First operand 57 states and 69 transitions. Second operand has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 16:49:57,704 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:57,704 INFO L93 Difference]: Finished difference Result 69 states and 84 transitions. [2022-04-14 16:49:57,704 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 16:49:57,704 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 44 [2022-04-14 16:49:57,705 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:49:57,705 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 16:49:57,706 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 53 transitions. [2022-04-14 16:49:57,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 16:49:57,707 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 53 transitions. [2022-04-14 16:49:57,707 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 53 transitions. [2022-04-14 16:49:57,819 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:49:57,821 INFO L225 Difference]: With dead ends: 69 [2022-04-14 16:49:57,821 INFO L226 Difference]: Without dead ends: 67 [2022-04-14 16:49:57,822 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 88 GetRequests, 80 SyntacticMatches, 2 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=17, Invalid=39, Unknown=0, NotChecked=0, Total=56 [2022-04-14 16:49:57,822 INFO L913 BasicCegarLoop]: 36 mSDtfsCounter, 8 mSDsluCounter, 76 mSDsCounter, 0 mSdLazyCounter, 47 mSolverCounterSat, 1 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 11 SdHoareTripleChecker+Valid, 112 SdHoareTripleChecker+Invalid, 48 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 1 IncrementalHoareTripleChecker+Valid, 47 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-14 16:49:57,823 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [11 Valid, 112 Invalid, 48 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [1 Valid, 47 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-14 16:49:57,823 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states. [2022-04-14 16:49:57,833 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 64. [2022-04-14 16:49:57,834 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:49:57,834 INFO L82 GeneralOperation]: Start isEquivalent. First operand 67 states. Second operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-14 16:49:57,834 INFO L74 IsIncluded]: Start isIncluded. First operand 67 states. Second operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-14 16:49:57,835 INFO L87 Difference]: Start difference. First operand 67 states. Second operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-14 16:49:57,837 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:57,837 INFO L93 Difference]: Finished difference Result 67 states and 82 transitions. [2022-04-14 16:49:57,837 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 82 transitions. [2022-04-14 16:49:57,838 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:57,838 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:57,838 INFO L74 IsIncluded]: Start isIncluded. First operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) Second operand 67 states. [2022-04-14 16:49:57,839 INFO L87 Difference]: Start difference. First operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) Second operand 67 states. [2022-04-14 16:49:57,841 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:49:57,841 INFO L93 Difference]: Finished difference Result 67 states and 82 transitions. [2022-04-14 16:49:57,841 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 82 transitions. [2022-04-14 16:49:57,842 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:49:57,842 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:49:57,842 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:49:57,842 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:49:57,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 64 states, 37 states have (on average 1.162162162162162) internal successors, (43), 40 states have internal predecessors, (43), 18 states have call successors, (18), 9 states have call predecessors, (18), 8 states have return successors, (16), 14 states have call predecessors, (16), 16 states have call successors, (16) [2022-04-14 16:49:57,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 64 states to 64 states and 77 transitions. [2022-04-14 16:49:57,845 INFO L78 Accepts]: Start accepts. Automaton has 64 states and 77 transitions. Word has length 44 [2022-04-14 16:49:57,845 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:49:57,845 INFO L478 AbstractCegarLoop]: Abstraction has 64 states and 77 transitions. [2022-04-14 16:49:57,845 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 3.0) internal successors, (15), 4 states have internal predecessors, (15), 2 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 16:49:57,845 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 77 transitions. [2022-04-14 16:49:57,846 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-04-14 16:49:57,846 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:49:57,846 INFO L499 BasicCegarLoop]: trace histogram [9, 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:49:57,871 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 16:49:58,071 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:58,072 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:49:58,072 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:49:58,072 INFO L85 PathProgramCache]: Analyzing trace with hash 1615471943, now seen corresponding path program 1 times [2022-04-14 16:49:58,072 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:49:58,072 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [654448649] [2022-04-14 16:49:58,072 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:58,073 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:49:58,088 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:49:58,088 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1526659026] [2022-04-14 16:49:58,088 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:49:58,089 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:49:58,089 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:49:58,090 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 16:49:58,100 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 16:49:58,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:58,153 INFO L263 TraceCheckSpWp]: Trace formula consists of 163 conjuncts, 25 conjunts are in the unsatisfiable core [2022-04-14 16:49:58,169 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:49:58,170 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:49:58,695 INFO L272 TraceCheckUtils]: 0: Hoare triple {2064#true} call ULTIMATE.init(); {2064#true} is VALID [2022-04-14 16:49:58,695 INFO L290 TraceCheckUtils]: 1: Hoare triple {2064#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(8, 2);call #Ultimate.allocInit(12, 3); {2064#true} is VALID [2022-04-14 16:49:58,695 INFO L290 TraceCheckUtils]: 2: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,695 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2064#true} {2064#true} #94#return; {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L272 TraceCheckUtils]: 4: Hoare triple {2064#true} call #t~ret5 := main(); {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L290 TraceCheckUtils]: 5: Hoare triple {2064#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L272 TraceCheckUtils]: 6: Hoare triple {2064#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L290 TraceCheckUtils]: 7: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L290 TraceCheckUtils]: 8: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L290 TraceCheckUtils]: 9: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,696 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2064#true} {2064#true} #78#return; {2064#true} is VALID [2022-04-14 16:49:58,697 INFO L290 TraceCheckUtils]: 11: Hoare triple {2064#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,697 INFO L290 TraceCheckUtils]: 12: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,697 INFO L272 TraceCheckUtils]: 13: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,697 INFO L290 TraceCheckUtils]: 14: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,698 INFO L290 TraceCheckUtils]: 15: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,698 INFO L290 TraceCheckUtils]: 16: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,699 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {2064#true} {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #80#return; {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,699 INFO L272 TraceCheckUtils]: 18: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,699 INFO L290 TraceCheckUtils]: 19: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,700 INFO L290 TraceCheckUtils]: 20: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,700 INFO L290 TraceCheckUtils]: 21: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,701 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2064#true} {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #82#return; {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,701 INFO L272 TraceCheckUtils]: 23: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,701 INFO L290 TraceCheckUtils]: 24: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,701 INFO L290 TraceCheckUtils]: 25: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,701 INFO L290 TraceCheckUtils]: 26: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,704 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2064#true} {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #84#return; {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,705 INFO L290 TraceCheckUtils]: 28: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,705 INFO L290 TraceCheckUtils]: 29: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !false; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,705 INFO L272 TraceCheckUtils]: 30: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,705 INFO L290 TraceCheckUtils]: 31: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,706 INFO L290 TraceCheckUtils]: 32: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,706 INFO L290 TraceCheckUtils]: 33: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,706 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2064#true} {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #80#return; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,706 INFO L272 TraceCheckUtils]: 35: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,707 INFO L290 TraceCheckUtils]: 36: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,707 INFO L290 TraceCheckUtils]: 37: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,707 INFO L290 TraceCheckUtils]: 38: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,707 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {2064#true} {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #82#return; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,707 INFO L272 TraceCheckUtils]: 40: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,708 INFO L290 TraceCheckUtils]: 41: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,708 INFO L290 TraceCheckUtils]: 42: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,708 INFO L290 TraceCheckUtils]: 43: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,708 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {2064#true} {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #84#return; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,709 INFO L290 TraceCheckUtils]: 45: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !(~r~0 >= ~d~0); {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,709 INFO L290 TraceCheckUtils]: 46: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !false; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,710 INFO L272 TraceCheckUtils]: 47: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,710 INFO L290 TraceCheckUtils]: 48: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,710 INFO L290 TraceCheckUtils]: 49: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,710 INFO L290 TraceCheckUtils]: 50: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,710 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {2064#true} {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #86#return; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,711 INFO L272 TraceCheckUtils]: 52: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:49:58,711 INFO L290 TraceCheckUtils]: 53: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:49:58,711 INFO L290 TraceCheckUtils]: 54: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:49:58,711 INFO L290 TraceCheckUtils]: 55: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:49:58,712 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {2064#true} {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #88#return; {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:49:58,712 INFO L290 TraceCheckUtils]: 57: Hoare triple {2154#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:49:58,713 INFO L290 TraceCheckUtils]: 58: Hoare triple {2102#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {2245#(and (= (+ main_~A~0 (* (- 1) main_~r~0)) main_~B~0) (= main_~B~0 1) (= main_~q~0 1))} is VALID [2022-04-14 16:49:58,713 INFO L290 TraceCheckUtils]: 59: Hoare triple {2245#(and (= (+ main_~A~0 (* (- 1) main_~r~0)) main_~B~0) (= main_~B~0 1) (= main_~q~0 1))} assume !false; {2245#(and (= (+ main_~A~0 (* (- 1) main_~r~0)) main_~B~0) (= main_~B~0 1) (= main_~q~0 1))} is VALID [2022-04-14 16:49:58,714 INFO L272 TraceCheckUtils]: 60: Hoare triple {2245#(and (= (+ main_~A~0 (* (- 1) main_~r~0)) main_~B~0) (= main_~B~0 1) (= main_~q~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {2252#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:58,715 INFO L290 TraceCheckUtils]: 61: Hoare triple {2252#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2256#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:58,715 INFO L290 TraceCheckUtils]: 62: Hoare triple {2256#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2065#false} is VALID [2022-04-14 16:49:58,715 INFO L290 TraceCheckUtils]: 63: Hoare triple {2065#false} assume !false; {2065#false} is VALID [2022-04-14 16:49:58,715 INFO L134 CoverageAnalysis]: Checked inductivity of 135 backedges. 16 proven. 7 refuted. 0 times theorem prover too weak. 112 trivial. 0 not checked. [2022-04-14 16:49:58,715 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:49:59,992 INFO L290 TraceCheckUtils]: 63: Hoare triple {2065#false} assume !false; {2065#false} is VALID [2022-04-14 16:49:59,993 INFO L290 TraceCheckUtils]: 62: Hoare triple {2256#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2065#false} is VALID [2022-04-14 16:49:59,993 INFO L290 TraceCheckUtils]: 61: Hoare triple {2252#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2256#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:49:59,995 INFO L272 TraceCheckUtils]: 60: Hoare triple {2272#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {2252#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:49:59,995 INFO L290 TraceCheckUtils]: 59: Hoare triple {2272#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} assume !false; {2272#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} is VALID [2022-04-14 16:50:00,016 INFO L290 TraceCheckUtils]: 58: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {2272#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} is VALID [2022-04-14 16:50:00,045 INFO L290 TraceCheckUtils]: 57: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,047 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {2064#true} {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #88#return; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,047 INFO L290 TraceCheckUtils]: 55: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,047 INFO L290 TraceCheckUtils]: 54: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,047 INFO L290 TraceCheckUtils]: 53: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,047 INFO L272 TraceCheckUtils]: 52: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,048 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {2064#true} {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #86#return; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,048 INFO L290 TraceCheckUtils]: 50: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,048 INFO L290 TraceCheckUtils]: 49: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,048 INFO L290 TraceCheckUtils]: 48: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,048 INFO L272 TraceCheckUtils]: 47: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,051 INFO L290 TraceCheckUtils]: 46: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !false; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,052 INFO L290 TraceCheckUtils]: 45: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !(~r~0 >= ~d~0); {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,053 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {2064#true} {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #84#return; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,053 INFO L290 TraceCheckUtils]: 43: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,053 INFO L290 TraceCheckUtils]: 42: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,053 INFO L290 TraceCheckUtils]: 41: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,053 INFO L272 TraceCheckUtils]: 40: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,054 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {2064#true} {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #82#return; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,054 INFO L290 TraceCheckUtils]: 38: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,054 INFO L290 TraceCheckUtils]: 37: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,054 INFO L290 TraceCheckUtils]: 36: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,054 INFO L272 TraceCheckUtils]: 35: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,055 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2064#true} {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #80#return; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,055 INFO L290 TraceCheckUtils]: 33: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,055 INFO L290 TraceCheckUtils]: 32: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,055 INFO L290 TraceCheckUtils]: 31: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,055 INFO L272 TraceCheckUtils]: 30: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,058 INFO L290 TraceCheckUtils]: 29: Hoare triple {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !false; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,066 INFO L290 TraceCheckUtils]: 28: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {2283#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:00,067 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {2064#true} {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} #84#return; {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,068 INFO L290 TraceCheckUtils]: 26: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,068 INFO L290 TraceCheckUtils]: 25: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,068 INFO L290 TraceCheckUtils]: 24: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,068 INFO L272 TraceCheckUtils]: 23: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,071 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {2064#true} {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} #82#return; {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,071 INFO L290 TraceCheckUtils]: 21: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,071 INFO L290 TraceCheckUtils]: 20: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,071 INFO L290 TraceCheckUtils]: 19: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,071 INFO L272 TraceCheckUtils]: 18: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,072 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {2064#true} {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} #80#return; {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,072 INFO L290 TraceCheckUtils]: 16: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,072 INFO L290 TraceCheckUtils]: 15: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,072 INFO L290 TraceCheckUtils]: 14: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,072 INFO L272 TraceCheckUtils]: 13: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,073 INFO L290 TraceCheckUtils]: 12: Hoare triple {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} assume !false; {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,073 INFO L290 TraceCheckUtils]: 11: Hoare triple {2064#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {2279#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:00,073 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2064#true} {2064#true} #78#return; {2064#true} is VALID [2022-04-14 16:50:00,073 INFO L290 TraceCheckUtils]: 9: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,073 INFO L290 TraceCheckUtils]: 8: Hoare triple {2064#true} assume !(0 == ~cond); {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L290 TraceCheckUtils]: 7: Hoare triple {2064#true} ~cond := #in~cond; {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L272 TraceCheckUtils]: 6: Hoare triple {2064#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L290 TraceCheckUtils]: 5: Hoare triple {2064#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L272 TraceCheckUtils]: 4: Hoare triple {2064#true} call #t~ret5 := main(); {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2064#true} {2064#true} #94#return; {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L290 TraceCheckUtils]: 2: Hoare triple {2064#true} assume true; {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L290 TraceCheckUtils]: 1: Hoare triple {2064#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(8, 2);call #Ultimate.allocInit(12, 3); {2064#true} is VALID [2022-04-14 16:50:00,074 INFO L272 TraceCheckUtils]: 0: Hoare triple {2064#true} call ULTIMATE.init(); {2064#true} is VALID [2022-04-14 16:50:00,075 INFO L134 CoverageAnalysis]: Checked inductivity of 135 backedges. 16 proven. 7 refuted. 0 times theorem prover too weak. 112 trivial. 0 not checked. [2022-04-14 16:50:00,075 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:50:00,075 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [654448649] [2022-04-14 16:50:00,075 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:50:00,075 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1526659026] [2022-04-14 16:50:00,075 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1526659026] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:50:00,075 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:50:00,076 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 10 [2022-04-14 16:50:00,076 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1142863443] [2022-04-14 16:50:00,076 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:50:00,094 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) Word has length 64 [2022-04-14 16:50:00,096 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:50:00,096 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) [2022-04-14 16:50:00,227 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:00,227 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-14 16:50:00,227 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:50:00,228 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-14 16:50:00,228 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2022-04-14 16:50:00,228 INFO L87 Difference]: Start difference. First operand 64 states and 77 transitions. Second operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) [2022-04-14 16:50:06,346 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:06,346 INFO L93 Difference]: Finished difference Result 154 states and 210 transitions. [2022-04-14 16:50:06,346 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-14 16:50:06,346 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) Word has length 64 [2022-04-14 16:50:06,347 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:50:06,347 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) [2022-04-14 16:50:06,350 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 141 transitions. [2022-04-14 16:50:06,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) [2022-04-14 16:50:06,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 141 transitions. [2022-04-14 16:50:06,379 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 141 transitions. [2022-04-14 16:50:06,645 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 141 edges. 141 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:06,648 INFO L225 Difference]: With dead ends: 154 [2022-04-14 16:50:06,649 INFO L226 Difference]: Without dead ends: 125 [2022-04-14 16:50:06,649 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 131 GetRequests, 116 SyntacticMatches, 3 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 4.0s TimeCoverageRelationStatistics Valid=50, Invalid=132, Unknown=0, NotChecked=0, Total=182 [2022-04-14 16:50:06,650 INFO L913 BasicCegarLoop]: 46 mSDtfsCounter, 42 mSDsluCounter, 122 mSDsCounter, 0 mSdLazyCounter, 277 mSolverCounterSat, 79 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 48 SdHoareTripleChecker+Valid, 168 SdHoareTripleChecker+Invalid, 356 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 79 IncrementalHoareTripleChecker+Valid, 277 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.9s IncrementalHoareTripleChecker+Time [2022-04-14 16:50:06,650 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [48 Valid, 168 Invalid, 356 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [79 Valid, 277 Invalid, 0 Unknown, 0 Unchecked, 0.9s Time] [2022-04-14 16:50:06,651 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 125 states. [2022-04-14 16:50:06,731 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 125 to 113. [2022-04-14 16:50:06,731 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:50:06,732 INFO L82 GeneralOperation]: Start isEquivalent. First operand 125 states. Second operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) [2022-04-14 16:50:06,748 INFO L74 IsIncluded]: Start isIncluded. First operand 125 states. Second operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) [2022-04-14 16:50:06,749 INFO L87 Difference]: Start difference. First operand 125 states. Second operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) [2022-04-14 16:50:06,755 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:06,755 INFO L93 Difference]: Finished difference Result 125 states and 166 transitions. [2022-04-14 16:50:06,755 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 166 transitions. [2022-04-14 16:50:06,758 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:06,758 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:06,759 INFO L74 IsIncluded]: Start isIncluded. First operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) Second operand 125 states. [2022-04-14 16:50:06,759 INFO L87 Difference]: Start difference. First operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) Second operand 125 states. [2022-04-14 16:50:06,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:06,764 INFO L93 Difference]: Finished difference Result 125 states and 166 transitions. [2022-04-14 16:50:06,764 INFO L276 IsEmpty]: Start isEmpty. Operand 125 states and 166 transitions. [2022-04-14 16:50:06,765 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:06,765 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:06,765 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:50:06,765 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:50:06,765 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 113 states, 67 states have (on average 1.2238805970149254) internal successors, (82), 71 states have internal predecessors, (82), 33 states have call successors, (33), 13 states have call predecessors, (33), 12 states have return successors, (31), 28 states have call predecessors, (31), 31 states have call successors, (31) [2022-04-14 16:50:06,776 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 113 states to 113 states and 146 transitions. [2022-04-14 16:50:06,776 INFO L78 Accepts]: Start accepts. Automaton has 113 states and 146 transitions. Word has length 64 [2022-04-14 16:50:06,776 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:50:06,776 INFO L478 AbstractCegarLoop]: Abstraction has 113 states and 146 transitions. [2022-04-14 16:50:06,777 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 9 states have internal predecessors, (30), 7 states have call successors, (21), 2 states have call predecessors, (21), 1 states have return successors, (18), 5 states have call predecessors, (18), 5 states have call successors, (18) [2022-04-14 16:50:06,777 INFO L276 IsEmpty]: Start isEmpty. Operand 113 states and 146 transitions. [2022-04-14 16:50:06,784 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 76 [2022-04-14 16:50:06,785 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:50:06,785 INFO L499 BasicCegarLoop]: trace histogram [11, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:50:06,831 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 16:50:07,008 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:07,008 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:50:07,008 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:50:07,009 INFO L85 PathProgramCache]: Analyzing trace with hash -1554666020, now seen corresponding path program 1 times [2022-04-14 16:50:07,009 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:50:07,009 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [668518551] [2022-04-14 16:50:07,009 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:50:07,009 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:50:07,022 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:50:07,023 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1669815442] [2022-04-14 16:50:07,023 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:50:07,023 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:07,023 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:50:07,032 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 16:50:07,079 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 16:50:07,118 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:50:07,120 INFO L263 TraceCheckSpWp]: Trace formula consists of 183 conjuncts, 37 conjunts are in the unsatisfiable core [2022-04-14 16:50:07,162 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:50:07,165 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:50:07,829 INFO L272 TraceCheckUtils]: 0: Hoare triple {3103#true} call ULTIMATE.init(); {3103#true} is VALID [2022-04-14 16:50:07,829 INFO L290 TraceCheckUtils]: 1: Hoare triple {3103#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(8, 2);call #Ultimate.allocInit(12, 3); {3103#true} is VALID [2022-04-14 16:50:07,829 INFO L290 TraceCheckUtils]: 2: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3103#true} {3103#true} #94#return; {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L272 TraceCheckUtils]: 4: Hoare triple {3103#true} call #t~ret5 := main(); {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L290 TraceCheckUtils]: 5: Hoare triple {3103#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L272 TraceCheckUtils]: 6: Hoare triple {3103#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L290 TraceCheckUtils]: 7: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L290 TraceCheckUtils]: 8: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L290 TraceCheckUtils]: 9: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,830 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3103#true} {3103#true} #78#return; {3103#true} is VALID [2022-04-14 16:50:07,831 INFO L290 TraceCheckUtils]: 11: Hoare triple {3103#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,831 INFO L290 TraceCheckUtils]: 12: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,831 INFO L272 TraceCheckUtils]: 13: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,831 INFO L290 TraceCheckUtils]: 14: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,831 INFO L290 TraceCheckUtils]: 15: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,831 INFO L290 TraceCheckUtils]: 16: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,832 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {3103#true} {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #80#return; {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,832 INFO L272 TraceCheckUtils]: 18: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,832 INFO L290 TraceCheckUtils]: 19: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,832 INFO L290 TraceCheckUtils]: 20: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,833 INFO L290 TraceCheckUtils]: 21: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,833 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3103#true} {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #82#return; {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,833 INFO L272 TraceCheckUtils]: 23: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,833 INFO L290 TraceCheckUtils]: 24: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,834 INFO L290 TraceCheckUtils]: 25: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,834 INFO L290 TraceCheckUtils]: 26: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,834 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3103#true} {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #84#return; {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,835 INFO L290 TraceCheckUtils]: 28: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,836 INFO L290 TraceCheckUtils]: 29: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !false; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,836 INFO L272 TraceCheckUtils]: 30: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,836 INFO L290 TraceCheckUtils]: 31: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,836 INFO L290 TraceCheckUtils]: 32: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,836 INFO L290 TraceCheckUtils]: 33: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,837 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {3103#true} {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #80#return; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,837 INFO L272 TraceCheckUtils]: 35: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,837 INFO L290 TraceCheckUtils]: 36: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,837 INFO L290 TraceCheckUtils]: 37: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,837 INFO L290 TraceCheckUtils]: 38: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,838 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {3103#true} {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #82#return; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,838 INFO L272 TraceCheckUtils]: 40: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,838 INFO L290 TraceCheckUtils]: 41: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,838 INFO L290 TraceCheckUtils]: 42: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,838 INFO L290 TraceCheckUtils]: 43: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,839 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {3103#true} {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #84#return; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,840 INFO L290 TraceCheckUtils]: 45: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !(~r~0 >= ~d~0); {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,840 INFO L290 TraceCheckUtils]: 46: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !false; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,840 INFO L272 TraceCheckUtils]: 47: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,840 INFO L290 TraceCheckUtils]: 48: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,840 INFO L290 TraceCheckUtils]: 49: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,840 INFO L290 TraceCheckUtils]: 50: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,841 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {3103#true} {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #86#return; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,841 INFO L272 TraceCheckUtils]: 52: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,841 INFO L290 TraceCheckUtils]: 53: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:07,842 INFO L290 TraceCheckUtils]: 54: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:07,842 INFO L290 TraceCheckUtils]: 55: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:07,842 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {3103#true} {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #88#return; {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:07,843 INFO L290 TraceCheckUtils]: 57: Hoare triple {3193#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,844 INFO L290 TraceCheckUtils]: 58: Hoare triple {3141#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,844 INFO L290 TraceCheckUtils]: 59: Hoare triple {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,845 INFO L272 TraceCheckUtils]: 60: Hoare triple {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,845 INFO L290 TraceCheckUtils]: 61: Hoare triple {3103#true} ~cond := #in~cond; {3294#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:07,845 INFO L290 TraceCheckUtils]: 62: Hoare triple {3294#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:07,846 INFO L290 TraceCheckUtils]: 63: Hoare triple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:07,847 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #86#return; {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,847 INFO L272 TraceCheckUtils]: 65: Hoare triple {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:07,847 INFO L290 TraceCheckUtils]: 66: Hoare triple {3103#true} ~cond := #in~cond; {3294#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:07,848 INFO L290 TraceCheckUtils]: 67: Hoare triple {3294#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:07,848 INFO L290 TraceCheckUtils]: 68: Hoare triple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:07,849 INFO L284 TraceCheckUtils]: 69: Hoare quadruple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} {3284#(and (= main_~q~0 main_~p~0) (= main_~B~0 1) (= main_~r~0 (+ (* (- 1) main_~d~0) main_~A~0)) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #88#return; {3320#(and (= main_~q~0 main_~p~0) (= main_~d~0 1) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:07,850 INFO L290 TraceCheckUtils]: 70: Hoare triple {3320#(and (= main_~q~0 main_~p~0) (= main_~d~0 1) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~p~0 1))} assume !(1 != ~p~0); {3324#(and (= main_~d~0 1) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~q~0 1))} is VALID [2022-04-14 16:50:07,851 INFO L272 TraceCheckUtils]: 71: Hoare triple {3324#(and (= main_~d~0 1) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~q~0 1))} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {3328#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:50:07,851 INFO L290 TraceCheckUtils]: 72: Hoare triple {3328#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3332#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:07,852 INFO L290 TraceCheckUtils]: 73: Hoare triple {3332#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3104#false} is VALID [2022-04-14 16:50:07,852 INFO L290 TraceCheckUtils]: 74: Hoare triple {3104#false} assume !false; {3104#false} is VALID [2022-04-14 16:50:07,852 INFO L134 CoverageAnalysis]: Checked inductivity of 209 backedges. 66 proven. 11 refuted. 0 times theorem prover too weak. 132 trivial. 0 not checked. [2022-04-14 16:50:07,852 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:50:17,026 INFO L290 TraceCheckUtils]: 74: Hoare triple {3104#false} assume !false; {3104#false} is VALID [2022-04-14 16:50:17,026 INFO L290 TraceCheckUtils]: 73: Hoare triple {3332#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3104#false} is VALID [2022-04-14 16:50:17,027 INFO L290 TraceCheckUtils]: 72: Hoare triple {3328#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3332#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:17,028 INFO L272 TraceCheckUtils]: 71: Hoare triple {3348#(= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0)} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {3328#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:50:17,028 INFO L290 TraceCheckUtils]: 70: Hoare triple {3352#(or (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (not (= main_~p~0 1)))} assume !(1 != ~p~0); {3348#(= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0)} is VALID [2022-04-14 16:50:17,029 INFO L284 TraceCheckUtils]: 69: Hoare quadruple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} {3356#(or (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (not (= (* main_~B~0 main_~p~0) main_~d~0)) (not (= main_~p~0 1)))} #88#return; {3352#(or (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (not (= main_~p~0 1)))} is VALID [2022-04-14 16:50:17,029 INFO L290 TraceCheckUtils]: 68: Hoare triple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:17,030 INFO L290 TraceCheckUtils]: 67: Hoare triple {3366#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:17,030 INFO L290 TraceCheckUtils]: 66: Hoare triple {3103#true} ~cond := #in~cond; {3366#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 16:50:17,031 INFO L272 TraceCheckUtils]: 65: Hoare triple {3356#(or (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (not (= (* main_~B~0 main_~p~0) main_~d~0)) (not (= main_~p~0 1)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,034 INFO L284 TraceCheckUtils]: 64: Hoare quadruple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} {3103#true} #86#return; {3356#(or (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (not (= (* main_~B~0 main_~p~0) main_~d~0)) (not (= main_~p~0 1)))} is VALID [2022-04-14 16:50:17,034 INFO L290 TraceCheckUtils]: 63: Hoare triple {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:17,035 INFO L290 TraceCheckUtils]: 62: Hoare triple {3366#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3298#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:50:17,035 INFO L290 TraceCheckUtils]: 61: Hoare triple {3103#true} ~cond := #in~cond; {3366#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 16:50:17,035 INFO L272 TraceCheckUtils]: 60: Hoare triple {3103#true} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,035 INFO L290 TraceCheckUtils]: 59: Hoare triple {3103#true} assume !false; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 58: Hoare triple {3103#true} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 57: Hoare triple {3103#true} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {3103#true} {3103#true} #88#return; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 55: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 54: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 53: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L272 TraceCheckUtils]: 52: Hoare triple {3103#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {3103#true} {3103#true} #86#return; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 50: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 49: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,036 INFO L290 TraceCheckUtils]: 48: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L272 TraceCheckUtils]: 47: Hoare triple {3103#true} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 46: Hoare triple {3103#true} assume !false; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 45: Hoare triple {3103#true} assume !(~r~0 >= ~d~0); {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {3103#true} {3103#true} #84#return; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 43: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 42: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 41: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L272 TraceCheckUtils]: 40: Hoare triple {3103#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {3103#true} {3103#true} #82#return; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 38: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,037 INFO L290 TraceCheckUtils]: 37: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 36: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L272 TraceCheckUtils]: 35: Hoare triple {3103#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {3103#true} {3103#true} #80#return; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 33: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 32: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 31: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L272 TraceCheckUtils]: 30: Hoare triple {3103#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 29: Hoare triple {3103#true} assume !false; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L290 TraceCheckUtils]: 28: Hoare triple {3103#true} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {3103#true} is VALID [2022-04-14 16:50:17,038 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3103#true} {3103#true} #84#return; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 26: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 25: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 24: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L272 TraceCheckUtils]: 23: Hoare triple {3103#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {3103#true} {3103#true} #82#return; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 21: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 20: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 19: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L272 TraceCheckUtils]: 18: Hoare triple {3103#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {3103#true} {3103#true} #80#return; {3103#true} is VALID [2022-04-14 16:50:17,039 INFO L290 TraceCheckUtils]: 16: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 15: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 14: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L272 TraceCheckUtils]: 13: Hoare triple {3103#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 12: Hoare triple {3103#true} assume !false; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 11: Hoare triple {3103#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3103#true} {3103#true} #78#return; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 9: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 8: Hoare triple {3103#true} assume !(0 == ~cond); {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 7: Hoare triple {3103#true} ~cond := #in~cond; {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L272 TraceCheckUtils]: 6: Hoare triple {3103#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {3103#true} is VALID [2022-04-14 16:50:17,040 INFO L290 TraceCheckUtils]: 5: Hoare triple {3103#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {3103#true} is VALID [2022-04-14 16:50:17,041 INFO L272 TraceCheckUtils]: 4: Hoare triple {3103#true} call #t~ret5 := main(); {3103#true} is VALID [2022-04-14 16:50:17,041 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3103#true} {3103#true} #94#return; {3103#true} is VALID [2022-04-14 16:50:17,041 INFO L290 TraceCheckUtils]: 2: Hoare triple {3103#true} assume true; {3103#true} is VALID [2022-04-14 16:50:17,041 INFO L290 TraceCheckUtils]: 1: Hoare triple {3103#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(8, 2);call #Ultimate.allocInit(12, 3); {3103#true} is VALID [2022-04-14 16:50:17,041 INFO L272 TraceCheckUtils]: 0: Hoare triple {3103#true} call ULTIMATE.init(); {3103#true} is VALID [2022-04-14 16:50:17,042 INFO L134 CoverageAnalysis]: Checked inductivity of 209 backedges. 68 proven. 2 refuted. 0 times theorem prover too weak. 139 trivial. 0 not checked. [2022-04-14 16:50:17,042 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:50:17,042 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [668518551] [2022-04-14 16:50:17,042 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:50:17,042 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1669815442] [2022-04-14 16:50:17,042 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1669815442] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:50:17,042 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:50:17,042 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 9] total 15 [2022-04-14 16:50:17,042 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [505538430] [2022-04-14 16:50:17,043 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:50:17,043 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) Word has length 75 [2022-04-14 16:50:17,044 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:50:17,044 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) [2022-04-14 16:50:17,110 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:17,111 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-14 16:50:17,111 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:50:17,111 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-14 16:50:17,111 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=158, Unknown=0, NotChecked=0, Total=210 [2022-04-14 16:50:17,112 INFO L87 Difference]: Start difference. First operand 113 states and 146 transitions. Second operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) [2022-04-14 16:50:18,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:18,281 INFO L93 Difference]: Finished difference Result 169 states and 219 transitions. [2022-04-14 16:50:18,282 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-14 16:50:18,282 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) Word has length 75 [2022-04-14 16:50:18,282 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:50:18,282 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) [2022-04-14 16:50:18,285 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 114 transitions. [2022-04-14 16:50:18,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) [2022-04-14 16:50:18,288 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 114 transitions. [2022-04-14 16:50:18,288 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 114 transitions. [2022-04-14 16:50:18,399 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 114 edges. 114 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:18,402 INFO L225 Difference]: With dead ends: 169 [2022-04-14 16:50:18,402 INFO L226 Difference]: Without dead ends: 115 [2022-04-14 16:50:18,403 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 151 GetRequests, 133 SyntacticMatches, 3 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 19 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=65, Invalid=207, Unknown=0, NotChecked=0, Total=272 [2022-04-14 16:50:18,403 INFO L913 BasicCegarLoop]: 34 mSDtfsCounter, 34 mSDsluCounter, 112 mSDsCounter, 0 mSdLazyCounter, 350 mSolverCounterSat, 38 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 47 SdHoareTripleChecker+Valid, 146 SdHoareTripleChecker+Invalid, 388 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 38 IncrementalHoareTripleChecker+Valid, 350 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-14 16:50:18,404 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [47 Valid, 146 Invalid, 388 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [38 Valid, 350 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-14 16:50:18,404 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2022-04-14 16:50:18,433 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 101. [2022-04-14 16:50:18,433 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:50:18,433 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:18,433 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:18,434 INFO L87 Difference]: Start difference. First operand 115 states. Second operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:18,438 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:18,438 INFO L93 Difference]: Finished difference Result 115 states and 142 transitions. [2022-04-14 16:50:18,438 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 142 transitions. [2022-04-14 16:50:18,439 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:18,439 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:18,439 INFO L74 IsIncluded]: Start isIncluded. First operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) Second operand 115 states. [2022-04-14 16:50:18,439 INFO L87 Difference]: Start difference. First operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) Second operand 115 states. [2022-04-14 16:50:18,443 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:18,444 INFO L93 Difference]: Finished difference Result 115 states and 142 transitions. [2022-04-14 16:50:18,444 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 142 transitions. [2022-04-14 16:50:18,444 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:18,444 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:18,444 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:50:18,444 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:50:18,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 101 states, 61 states have (on average 1.1639344262295082) internal successors, (71), 64 states have internal predecessors, (71), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 22 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:18,449 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 101 states to 101 states and 121 transitions. [2022-04-14 16:50:18,449 INFO L78 Accepts]: Start accepts. Automaton has 101 states and 121 transitions. Word has length 75 [2022-04-14 16:50:18,449 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:50:18,449 INFO L478 AbstractCegarLoop]: Abstraction has 101 states and 121 transitions. [2022-04-14 16:50:18,449 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 12 states have (on average 2.9166666666666665) internal successors, (35), 11 states have internal predecessors, (35), 7 states have call successors, (21), 2 states have call predecessors, (21), 2 states have return successors, (19), 7 states have call predecessors, (19), 5 states have call successors, (19) [2022-04-14 16:50:18,449 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 121 transitions. [2022-04-14 16:50:18,450 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 85 [2022-04-14 16:50:18,450 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:50:18,450 INFO L499 BasicCegarLoop]: trace histogram [13, 12, 12, 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, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:50:18,475 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 16:50:18,663 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:18,664 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:50:18,664 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:50:18,664 INFO L85 PathProgramCache]: Analyzing trace with hash 1204093031, now seen corresponding path program 1 times [2022-04-14 16:50:18,664 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:50:18,664 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1610873511] [2022-04-14 16:50:18,664 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:50:18,664 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:50:18,677 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:50:18,677 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [907934235] [2022-04-14 16:50:18,677 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:50:18,677 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:18,677 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:50:18,678 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 16:50:18,682 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 16:50:18,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:50:18,731 INFO L263 TraceCheckSpWp]: Trace formula consists of 196 conjuncts, 4 conjunts are in the unsatisfiable core [2022-04-14 16:50:18,744 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:50:18,745 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:50:20,040 INFO L272 TraceCheckUtils]: 0: Hoare triple {4187#true} call ULTIMATE.init(); {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L290 TraceCheckUtils]: 1: Hoare triple {4187#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(8, 2);call #Ultimate.allocInit(12, 3); {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L290 TraceCheckUtils]: 2: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4187#true} {4187#true} #94#return; {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L272 TraceCheckUtils]: 4: Hoare triple {4187#true} call #t~ret5 := main(); {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L290 TraceCheckUtils]: 5: Hoare triple {4187#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L272 TraceCheckUtils]: 6: Hoare triple {4187#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L290 TraceCheckUtils]: 7: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,041 INFO L290 TraceCheckUtils]: 8: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,042 INFO L290 TraceCheckUtils]: 9: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,042 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4187#true} {4187#true} #78#return; {4187#true} is VALID [2022-04-14 16:50:20,047 INFO L290 TraceCheckUtils]: 11: Hoare triple {4187#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {4225#(<= 1 main_~p~0)} is VALID [2022-04-14 16:50:20,048 INFO L290 TraceCheckUtils]: 12: Hoare triple {4225#(<= 1 main_~p~0)} assume !false; {4225#(<= 1 main_~p~0)} is VALID [2022-04-14 16:50:20,048 INFO L272 TraceCheckUtils]: 13: Hoare triple {4225#(<= 1 main_~p~0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,048 INFO L290 TraceCheckUtils]: 14: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,048 INFO L290 TraceCheckUtils]: 15: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,048 INFO L290 TraceCheckUtils]: 16: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,049 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {4187#true} {4225#(<= 1 main_~p~0)} #80#return; {4225#(<= 1 main_~p~0)} is VALID [2022-04-14 16:50:20,049 INFO L272 TraceCheckUtils]: 18: Hoare triple {4225#(<= 1 main_~p~0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,049 INFO L290 TraceCheckUtils]: 19: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,049 INFO L290 TraceCheckUtils]: 20: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,049 INFO L290 TraceCheckUtils]: 21: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,050 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4187#true} {4225#(<= 1 main_~p~0)} #82#return; {4225#(<= 1 main_~p~0)} is VALID [2022-04-14 16:50:20,050 INFO L272 TraceCheckUtils]: 23: Hoare triple {4225#(<= 1 main_~p~0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,050 INFO L290 TraceCheckUtils]: 24: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,050 INFO L290 TraceCheckUtils]: 25: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,050 INFO L290 TraceCheckUtils]: 26: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,051 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4187#true} {4225#(<= 1 main_~p~0)} #84#return; {4225#(<= 1 main_~p~0)} is VALID [2022-04-14 16:50:20,052 INFO L290 TraceCheckUtils]: 28: Hoare triple {4225#(<= 1 main_~p~0)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {4277#(<= 1 (div main_~p~0 2))} is VALID [2022-04-14 16:50:20,052 INFO L290 TraceCheckUtils]: 29: Hoare triple {4277#(<= 1 (div main_~p~0 2))} assume !false; {4277#(<= 1 (div main_~p~0 2))} is VALID [2022-04-14 16:50:20,052 INFO L272 TraceCheckUtils]: 30: Hoare triple {4277#(<= 1 (div main_~p~0 2))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,052 INFO L290 TraceCheckUtils]: 31: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,053 INFO L290 TraceCheckUtils]: 32: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,053 INFO L290 TraceCheckUtils]: 33: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,053 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {4187#true} {4277#(<= 1 (div main_~p~0 2))} #80#return; {4277#(<= 1 (div main_~p~0 2))} is VALID [2022-04-14 16:50:20,053 INFO L272 TraceCheckUtils]: 35: Hoare triple {4277#(<= 1 (div main_~p~0 2))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,053 INFO L290 TraceCheckUtils]: 36: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,053 INFO L290 TraceCheckUtils]: 37: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,054 INFO L290 TraceCheckUtils]: 38: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,054 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {4187#true} {4277#(<= 1 (div main_~p~0 2))} #82#return; {4277#(<= 1 (div main_~p~0 2))} is VALID [2022-04-14 16:50:20,054 INFO L272 TraceCheckUtils]: 40: Hoare triple {4277#(<= 1 (div main_~p~0 2))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,054 INFO L290 TraceCheckUtils]: 41: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,054 INFO L290 TraceCheckUtils]: 42: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,054 INFO L290 TraceCheckUtils]: 43: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,055 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {4187#true} {4277#(<= 1 (div main_~p~0 2))} #84#return; {4277#(<= 1 (div main_~p~0 2))} is VALID [2022-04-14 16:50:20,056 INFO L290 TraceCheckUtils]: 45: Hoare triple {4277#(<= 1 (div main_~p~0 2))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,056 INFO L290 TraceCheckUtils]: 46: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} assume !false; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,056 INFO L272 TraceCheckUtils]: 47: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,056 INFO L290 TraceCheckUtils]: 48: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,056 INFO L290 TraceCheckUtils]: 49: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,057 INFO L290 TraceCheckUtils]: 50: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,057 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {4187#true} {4329#(<= 1 (div (div main_~p~0 2) 2))} #80#return; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,057 INFO L272 TraceCheckUtils]: 52: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,057 INFO L290 TraceCheckUtils]: 53: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,057 INFO L290 TraceCheckUtils]: 54: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,057 INFO L290 TraceCheckUtils]: 55: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,058 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4187#true} {4329#(<= 1 (div (div main_~p~0 2) 2))} #82#return; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,058 INFO L272 TraceCheckUtils]: 57: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,058 INFO L290 TraceCheckUtils]: 58: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,058 INFO L290 TraceCheckUtils]: 59: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,058 INFO L290 TraceCheckUtils]: 60: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,059 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {4187#true} {4329#(<= 1 (div (div main_~p~0 2) 2))} #84#return; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,059 INFO L290 TraceCheckUtils]: 62: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} assume !(~r~0 >= ~d~0); {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,059 INFO L290 TraceCheckUtils]: 63: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} assume !false; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,060 INFO L272 TraceCheckUtils]: 64: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,060 INFO L290 TraceCheckUtils]: 65: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,060 INFO L290 TraceCheckUtils]: 66: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,060 INFO L290 TraceCheckUtils]: 67: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,060 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {4187#true} {4329#(<= 1 (div (div main_~p~0 2) 2))} #86#return; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,061 INFO L272 TraceCheckUtils]: 69: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4187#true} is VALID [2022-04-14 16:50:20,061 INFO L290 TraceCheckUtils]: 70: Hoare triple {4187#true} ~cond := #in~cond; {4187#true} is VALID [2022-04-14 16:50:20,061 INFO L290 TraceCheckUtils]: 71: Hoare triple {4187#true} assume !(0 == ~cond); {4187#true} is VALID [2022-04-14 16:50:20,061 INFO L290 TraceCheckUtils]: 72: Hoare triple {4187#true} assume true; {4187#true} is VALID [2022-04-14 16:50:20,061 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {4187#true} {4329#(<= 1 (div (div main_~p~0 2) 2))} #88#return; {4329#(<= 1 (div (div main_~p~0 2) 2))} is VALID [2022-04-14 16:50:20,063 INFO L290 TraceCheckUtils]: 74: Hoare triple {4329#(<= 1 (div (div main_~p~0 2) 2))} assume !(1 != ~p~0); {4188#false} is VALID [2022-04-14 16:50:20,063 INFO L272 TraceCheckUtils]: 75: Hoare triple {4188#false} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {4188#false} is VALID [2022-04-14 16:50:20,063 INFO L290 TraceCheckUtils]: 76: Hoare triple {4188#false} ~cond := #in~cond; {4188#false} is VALID [2022-04-14 16:50:20,063 INFO L290 TraceCheckUtils]: 77: Hoare triple {4188#false} assume !(0 == ~cond); {4188#false} is VALID [2022-04-14 16:50:20,063 INFO L290 TraceCheckUtils]: 78: Hoare triple {4188#false} assume true; {4188#false} is VALID [2022-04-14 16:50:20,063 INFO L284 TraceCheckUtils]: 79: Hoare quadruple {4188#false} {4188#false} #90#return; {4188#false} is VALID [2022-04-14 16:50:20,064 INFO L272 TraceCheckUtils]: 80: Hoare triple {4188#false} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {4188#false} is VALID [2022-04-14 16:50:20,064 INFO L290 TraceCheckUtils]: 81: Hoare triple {4188#false} ~cond := #in~cond; {4188#false} is VALID [2022-04-14 16:50:20,064 INFO L290 TraceCheckUtils]: 82: Hoare triple {4188#false} assume 0 == ~cond; {4188#false} is VALID [2022-04-14 16:50:20,064 INFO L290 TraceCheckUtils]: 83: Hoare triple {4188#false} assume !false; {4188#false} is VALID [2022-04-14 16:50:20,065 INFO L134 CoverageAnalysis]: Checked inductivity of 303 backedges. 81 proven. 0 refuted. 0 times theorem prover too weak. 222 trivial. 0 not checked. [2022-04-14 16:50:20,065 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-14 16:50:20,065 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:50:20,065 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1610873511] [2022-04-14 16:50:20,065 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:50:20,065 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [907934235] [2022-04-14 16:50:20,066 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [907934235] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-14 16:50:20,066 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-14 16:50:20,066 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-14 16:50:20,066 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [927848629] [2022-04-14 16:50:20,066 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-14 16:50:20,067 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) Word has length 84 [2022-04-14 16:50:20,069 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:50:20,069 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) [2022-04-14 16:50:20,118 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:20,118 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-14 16:50:20,118 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:50:20,119 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-14 16:50:20,119 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2022-04-14 16:50:20,119 INFO L87 Difference]: Start difference. First operand 101 states and 121 transitions. Second operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) [2022-04-14 16:50:20,282 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:20,282 INFO L93 Difference]: Finished difference Result 115 states and 136 transitions. [2022-04-14 16:50:20,282 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 16:50:20,283 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) Word has length 84 [2022-04-14 16:50:20,283 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:50:20,283 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) [2022-04-14 16:50:20,285 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 78 transitions. [2022-04-14 16:50:20,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) [2022-04-14 16:50:20,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 78 transitions. [2022-04-14 16:50:20,287 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 78 transitions. [2022-04-14 16:50:20,358 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:20,360 INFO L225 Difference]: With dead ends: 115 [2022-04-14 16:50:20,360 INFO L226 Difference]: Without dead ends: 103 [2022-04-14 16:50:20,361 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 83 GetRequests, 80 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=10, Invalid=10, Unknown=0, NotChecked=0, Total=20 [2022-04-14 16:50:20,361 INFO L913 BasicCegarLoop]: 52 mSDtfsCounter, 9 mSDsluCounter, 54 mSDsCounter, 0 mSdLazyCounter, 34 mSolverCounterSat, 7 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 14 SdHoareTripleChecker+Valid, 106 SdHoareTripleChecker+Invalid, 41 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Valid, 34 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-14 16:50:20,361 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [14 Valid, 106 Invalid, 41 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [7 Valid, 34 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-14 16:50:20,362 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 103 states. [2022-04-14 16:50:20,408 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 103 to 103. [2022-04-14 16:50:20,408 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:50:20,409 INFO L82 GeneralOperation]: Start isEquivalent. First operand 103 states. Second operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:20,409 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:20,409 INFO L87 Difference]: Start difference. First operand 103 states. Second operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:20,413 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:20,413 INFO L93 Difference]: Finished difference Result 103 states and 122 transitions. [2022-04-14 16:50:20,413 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 122 transitions. [2022-04-14 16:50:20,413 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:20,413 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:20,414 INFO L74 IsIncluded]: Start isIncluded. First operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) Second operand 103 states. [2022-04-14 16:50:20,414 INFO L87 Difference]: Start difference. First operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) Second operand 103 states. [2022-04-14 16:50:20,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:50:20,417 INFO L93 Difference]: Finished difference Result 103 states and 122 transitions. [2022-04-14 16:50:20,417 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 122 transitions. [2022-04-14 16:50:20,417 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:50:20,417 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:50:20,417 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:50:20,417 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:50:20,418 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 103 states, 63 states have (on average 1.1428571428571428) internal successors, (72), 64 states have internal predecessors, (72), 26 states have call successors, (26), 14 states have call predecessors, (26), 13 states have return successors, (24), 24 states have call predecessors, (24), 24 states have call successors, (24) [2022-04-14 16:50:20,420 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 103 states to 103 states and 122 transitions. [2022-04-14 16:50:20,420 INFO L78 Accepts]: Start accepts. Automaton has 103 states and 122 transitions. Word has length 84 [2022-04-14 16:50:20,420 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:50:20,420 INFO L478 AbstractCegarLoop]: Abstraction has 103 states and 122 transitions. [2022-04-14 16:50:20,421 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 5 states have internal predecessors, (23), 5 states have call successors, (16), 2 states have call predecessors, (16), 2 states have return successors, (14), 5 states have call predecessors, (14), 5 states have call successors, (14) [2022-04-14 16:50:20,421 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 122 transitions. [2022-04-14 16:50:20,421 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 95 [2022-04-14 16:50:20,422 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:50:20,422 INFO L499 BasicCegarLoop]: trace histogram [14, 13, 13, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:50:20,443 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 16:50:20,635 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable8,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:20,636 INFO L403 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:50:20,636 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:50:20,636 INFO L85 PathProgramCache]: Analyzing trace with hash -132947769, now seen corresponding path program 2 times [2022-04-14 16:50:20,636 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:50:20,636 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1021184162] [2022-04-14 16:50:20,636 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:50:20,636 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:50:20,649 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:50:20,649 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [20287175] [2022-04-14 16:50:20,649 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-14 16:50:20,649 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:50:20,649 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:50:20,650 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 16:50:20,657 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 16:50:20,718 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-14 16:50:20,718 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 16:50:20,719 INFO L263 TraceCheckSpWp]: Trace formula consists of 225 conjuncts, 39 conjunts are in the unsatisfiable core [2022-04-14 16:50:20,735 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:50:20,737 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:50:21,455 INFO L272 TraceCheckUtils]: 0: Hoare triple {4957#true} call ULTIMATE.init(); {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 1: Hoare triple {4957#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(8, 2);call #Ultimate.allocInit(12, 3); {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 2: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4957#true} {4957#true} #94#return; {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L272 TraceCheckUtils]: 4: Hoare triple {4957#true} call #t~ret5 := main(); {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 5: Hoare triple {4957#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L272 TraceCheckUtils]: 6: Hoare triple {4957#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 7: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 8: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L290 TraceCheckUtils]: 9: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,456 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4957#true} {4957#true} #78#return; {4957#true} is VALID [2022-04-14 16:50:21,457 INFO L290 TraceCheckUtils]: 11: Hoare triple {4957#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,457 INFO L290 TraceCheckUtils]: 12: Hoare triple {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !false; {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,458 INFO L272 TraceCheckUtils]: 13: Hoare triple {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,458 INFO L290 TraceCheckUtils]: 14: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,458 INFO L290 TraceCheckUtils]: 15: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,458 INFO L290 TraceCheckUtils]: 16: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,459 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {4957#true} {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #80#return; {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,459 INFO L272 TraceCheckUtils]: 18: Hoare triple {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,459 INFO L290 TraceCheckUtils]: 19: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,459 INFO L290 TraceCheckUtils]: 20: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,459 INFO L290 TraceCheckUtils]: 21: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,460 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4957#true} {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #82#return; {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,460 INFO L272 TraceCheckUtils]: 23: Hoare triple {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,460 INFO L290 TraceCheckUtils]: 24: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,460 INFO L290 TraceCheckUtils]: 25: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,460 INFO L290 TraceCheckUtils]: 26: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,461 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4957#true} {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} #84#return; {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,461 INFO L290 TraceCheckUtils]: 28: Hoare triple {4995#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~B~0 main_~d~0) (= main_~p~0 1))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,462 INFO L290 TraceCheckUtils]: 29: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !false; {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,462 INFO L272 TraceCheckUtils]: 30: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,462 INFO L290 TraceCheckUtils]: 31: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,462 INFO L290 TraceCheckUtils]: 32: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,462 INFO L290 TraceCheckUtils]: 33: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,464 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {4957#true} {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #80#return; {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,464 INFO L272 TraceCheckUtils]: 35: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,464 INFO L290 TraceCheckUtils]: 36: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,464 INFO L290 TraceCheckUtils]: 37: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,464 INFO L290 TraceCheckUtils]: 38: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,465 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {4957#true} {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #82#return; {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,465 INFO L272 TraceCheckUtils]: 40: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,465 INFO L290 TraceCheckUtils]: 41: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,465 INFO L290 TraceCheckUtils]: 42: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,465 INFO L290 TraceCheckUtils]: 43: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,473 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {4957#true} {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} #84#return; {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,473 INFO L290 TraceCheckUtils]: 45: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,474 INFO L290 TraceCheckUtils]: 46: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} assume !false; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,474 INFO L272 TraceCheckUtils]: 47: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,474 INFO L290 TraceCheckUtils]: 48: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,474 INFO L290 TraceCheckUtils]: 49: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,474 INFO L290 TraceCheckUtils]: 50: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,475 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {4957#true} {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} #80#return; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,475 INFO L272 TraceCheckUtils]: 52: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,475 INFO L290 TraceCheckUtils]: 53: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,475 INFO L290 TraceCheckUtils]: 54: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,475 INFO L290 TraceCheckUtils]: 55: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,476 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4957#true} {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} #82#return; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,476 INFO L272 TraceCheckUtils]: 57: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,476 INFO L290 TraceCheckUtils]: 58: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,476 INFO L290 TraceCheckUtils]: 59: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,476 INFO L290 TraceCheckUtils]: 60: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,477 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {4957#true} {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} #84#return; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,478 INFO L290 TraceCheckUtils]: 62: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} assume !(~r~0 >= ~d~0); {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,478 INFO L290 TraceCheckUtils]: 63: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} assume !false; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,478 INFO L272 TraceCheckUtils]: 64: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,478 INFO L290 TraceCheckUtils]: 65: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,478 INFO L290 TraceCheckUtils]: 66: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,478 INFO L290 TraceCheckUtils]: 67: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,482 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {4957#true} {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} #86#return; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,482 INFO L272 TraceCheckUtils]: 69: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,482 INFO L290 TraceCheckUtils]: 70: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,482 INFO L290 TraceCheckUtils]: 71: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,482 INFO L290 TraceCheckUtils]: 72: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,482 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {4957#true} {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} #88#return; {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} is VALID [2022-04-14 16:50:21,483 INFO L290 TraceCheckUtils]: 74: Hoare triple {5099#(and (= main_~A~0 main_~r~0) (= main_~q~0 0) (= main_~B~0 1) (= main_~d~0 (* main_~B~0 4)) (= main_~p~0 4))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,483 INFO L290 TraceCheckUtils]: 75: Hoare triple {5047#(and (= main_~A~0 main_~r~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= main_~q~0 0) (= main_~B~0 1))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,484 INFO L290 TraceCheckUtils]: 76: Hoare triple {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} assume !false; {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,484 INFO L272 TraceCheckUtils]: 77: Hoare triple {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,484 INFO L290 TraceCheckUtils]: 78: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,484 INFO L290 TraceCheckUtils]: 79: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,484 INFO L290 TraceCheckUtils]: 80: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,485 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {4957#true} {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} #86#return; {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,485 INFO L272 TraceCheckUtils]: 82: Hoare triple {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:21,485 INFO L290 TraceCheckUtils]: 83: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:21,485 INFO L290 TraceCheckUtils]: 84: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:21,485 INFO L290 TraceCheckUtils]: 85: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:21,486 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {4957#true} {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} #88#return; {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,487 INFO L290 TraceCheckUtils]: 87: Hoare triple {5190#(and (= main_~q~0 main_~p~0) (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) (= (+ main_~d~0 main_~r~0) main_~A~0) (= main_~B~0 1))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {5227#(and (= main_~q~0 2) (= (div (* main_~B~0 2) 2) main_~d~0) (= main_~B~0 1) (= main_~A~0 (+ (* main_~B~0 2) main_~r~0)) (= main_~p~0 1))} is VALID [2022-04-14 16:50:21,488 INFO L290 TraceCheckUtils]: 88: Hoare triple {5227#(and (= main_~q~0 2) (= (div (* main_~B~0 2) 2) main_~d~0) (= main_~B~0 1) (= main_~A~0 (+ (* main_~B~0 2) main_~r~0)) (= main_~p~0 1))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {5231#(and (= main_~A~0 (+ (* main_~B~0 2) (div (* main_~B~0 2) 2) main_~r~0)) (= (+ (- 2) main_~q~0) 1) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,489 INFO L290 TraceCheckUtils]: 89: Hoare triple {5231#(and (= main_~A~0 (+ (* main_~B~0 2) (div (* main_~B~0 2) 2) main_~r~0)) (= (+ (- 2) main_~q~0) 1) (= main_~B~0 1))} assume !false; {5231#(and (= main_~A~0 (+ (* main_~B~0 2) (div (* main_~B~0 2) 2) main_~r~0)) (= (+ (- 2) main_~q~0) 1) (= main_~B~0 1))} is VALID [2022-04-14 16:50:21,489 INFO L272 TraceCheckUtils]: 90: Hoare triple {5231#(and (= main_~A~0 (+ (* main_~B~0 2) (div (* main_~B~0 2) 2) main_~r~0)) (= (+ (- 2) main_~q~0) 1) (= main_~B~0 1))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {5238#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:50:21,490 INFO L290 TraceCheckUtils]: 91: Hoare triple {5238#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5242#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:21,490 INFO L290 TraceCheckUtils]: 92: Hoare triple {5242#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4958#false} is VALID [2022-04-14 16:50:21,490 INFO L290 TraceCheckUtils]: 93: Hoare triple {4958#false} assume !false; {4958#false} is VALID [2022-04-14 16:50:21,491 INFO L134 CoverageAnalysis]: Checked inductivity of 362 backedges. 26 proven. 24 refuted. 0 times theorem prover too weak. 312 trivial. 0 not checked. [2022-04-14 16:50:21,491 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:50:45,215 INFO L290 TraceCheckUtils]: 93: Hoare triple {4958#false} assume !false; {4958#false} is VALID [2022-04-14 16:50:45,215 INFO L290 TraceCheckUtils]: 92: Hoare triple {5242#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4958#false} is VALID [2022-04-14 16:50:45,216 INFO L290 TraceCheckUtils]: 91: Hoare triple {5238#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5242#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:50:45,216 INFO L272 TraceCheckUtils]: 90: Hoare triple {5258#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {5238#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:50:45,217 INFO L290 TraceCheckUtils]: 89: Hoare triple {5258#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} assume !false; {5258#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} is VALID [2022-04-14 16:50:45,234 INFO L290 TraceCheckUtils]: 88: Hoare triple {5265#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {5258#(= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)} is VALID [2022-04-14 16:50:45,251 INFO L290 TraceCheckUtils]: 87: Hoare triple {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {5265#(= main_~A~0 (+ (* (- 1) main_~d~0) main_~r~0 (* (+ main_~q~0 main_~p~0) main_~B~0)))} is VALID [2022-04-14 16:50:45,252 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {4957#true} {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #88#return; {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:45,252 INFO L290 TraceCheckUtils]: 85: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,252 INFO L290 TraceCheckUtils]: 84: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,252 INFO L290 TraceCheckUtils]: 83: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,252 INFO L272 TraceCheckUtils]: 82: Hoare triple {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,253 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {4957#true} {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} #86#return; {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:45,253 INFO L290 TraceCheckUtils]: 80: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,253 INFO L290 TraceCheckUtils]: 79: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,253 INFO L290 TraceCheckUtils]: 78: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,253 INFO L272 TraceCheckUtils]: 77: Hoare triple {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,254 INFO L290 TraceCheckUtils]: 76: Hoare triple {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} assume !false; {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:45,273 INFO L290 TraceCheckUtils]: 75: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {5269#(and (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))) (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (= (+ (- 1) (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (not (< main_~p~0 0)) (= (+ (* (+ main_~q~0 (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0) (= (mod main_~p~0 2) 0)) (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= main_~A~0 (+ (* main_~B~0 (+ main_~q~0 (div main_~p~0 2))) main_~r~0 (* (- 1) (div main_~d~0 2))))))))} is VALID [2022-04-14 16:50:45,798 INFO L290 TraceCheckUtils]: 74: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,799 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {4957#true} {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} #88#return; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,799 INFO L290 TraceCheckUtils]: 72: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,799 INFO L290 TraceCheckUtils]: 71: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,799 INFO L290 TraceCheckUtils]: 70: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,799 INFO L272 TraceCheckUtils]: 69: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,800 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {4957#true} {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} #86#return; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,801 INFO L290 TraceCheckUtils]: 67: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,801 INFO L290 TraceCheckUtils]: 66: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,801 INFO L290 TraceCheckUtils]: 65: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,801 INFO L272 TraceCheckUtils]: 64: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,805 INFO L290 TraceCheckUtils]: 63: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} assume !false; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,809 INFO L290 TraceCheckUtils]: 62: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} assume !(~r~0 >= ~d~0); {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,816 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {4957#true} {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} #84#return; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,816 INFO L290 TraceCheckUtils]: 60: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,816 INFO L290 TraceCheckUtils]: 59: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,816 INFO L290 TraceCheckUtils]: 58: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,816 INFO L272 TraceCheckUtils]: 57: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,817 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {4957#true} {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} #82#return; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,817 INFO L290 TraceCheckUtils]: 55: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,818 INFO L290 TraceCheckUtils]: 54: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,818 INFO L290 TraceCheckUtils]: 53: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,818 INFO L272 TraceCheckUtils]: 52: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,819 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {4957#true} {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} #80#return; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,819 INFO L290 TraceCheckUtils]: 50: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,819 INFO L290 TraceCheckUtils]: 49: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,819 INFO L290 TraceCheckUtils]: 48: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,819 INFO L272 TraceCheckUtils]: 47: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,825 INFO L290 TraceCheckUtils]: 46: Hoare triple {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} assume !false; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,967 INFO L290 TraceCheckUtils]: 45: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {5310#(and (or (and (or (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0) (and (or (and (or (= (+ (- 1) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2)))) (or (= 0 (mod (+ (div main_~d~0 2) 1) 2)) (and (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 2) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))) (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ (- 2) main_~r~0 (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))))))))) (or (and (or (and (or (= main_~A~0 (+ (- 2) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= (+ (- 2) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2))) main_~A~0))) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))) (or (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* (- 1) (div (+ (div main_~d~0 2) 1) 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))))) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)) (or (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0))) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))) (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1)))) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= main_~A~0 (+ (* (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2)) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)))) (and (< (div main_~p~0 2) 0) (not (= (mod (div main_~p~0 2) 2) 0)))) (or (= (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 (div (div main_~p~0 2) 2) (div main_~p~0 2) 1))) main_~A~0) (= (mod (div main_~p~0 2) 2) 0) (not (< (div main_~p~0 2) 0))))))) (or (and (or (not (< (div main_~d~0 2) 0)) (= (mod (div main_~d~0 2) 2) 0) (and (or (= main_~A~0 (+ (- 1) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2)))) (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= main_~A~0 (+ (- 1) (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))))))) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (and (or (= (mod (+ (div main_~p~0 2) 1) 2) 0) (= main_~A~0 (+ main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* main_~B~0 (+ main_~q~0 2 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2))) (* (- 1) (div main_~d~0 2))))) (or (not (= (mod (+ (div main_~p~0 2) 1) 2) 0)) (= (+ (* (+ main_~q~0 (div (+ (div main_~p~0 2) 1) 2) (div main_~p~0 2) 1) main_~B~0) main_~r~0 (* (- 1) (div (div main_~d~0 2) 2)) (* (- 1) (div main_~d~0 2))) main_~A~0))))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))))} is VALID [2022-04-14 16:50:45,969 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {4957#true} {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} #84#return; {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,969 INFO L290 TraceCheckUtils]: 43: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,969 INFO L290 TraceCheckUtils]: 42: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,969 INFO L290 TraceCheckUtils]: 41: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,969 INFO L272 TraceCheckUtils]: 40: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,970 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {4957#true} {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} #82#return; {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,970 INFO L290 TraceCheckUtils]: 38: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,970 INFO L290 TraceCheckUtils]: 37: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,970 INFO L290 TraceCheckUtils]: 36: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,970 INFO L272 TraceCheckUtils]: 35: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,971 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {4957#true} {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} #80#return; {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,971 INFO L290 TraceCheckUtils]: 33: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,971 INFO L290 TraceCheckUtils]: 32: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,971 INFO L290 TraceCheckUtils]: 31: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,971 INFO L272 TraceCheckUtils]: 30: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:45,973 INFO L290 TraceCheckUtils]: 29: Hoare triple {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} assume !false; {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,998 INFO L290 TraceCheckUtils]: 28: Hoare triple {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {5306#(and (or (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0) (and (or (= main_~A~0 (+ (- 1) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1)))) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)) (or (= main_~A~0 (+ (- 1) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)))) (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0))))) (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (and (or (and (not (= (mod main_~p~0 2) 0)) (< main_~p~0 0)) (= (+ (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2))) (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2))) main_~A~0)) (or (= (+ (* (- 1) main_~d~0) main_~r~0 (* (- 1) (div main_~d~0 2)) (* main_~B~0 (+ main_~q~0 main_~p~0 (div main_~p~0 2) 1))) main_~A~0) (not (< main_~p~0 0)) (= (mod main_~p~0 2) 0)))))} is VALID [2022-04-14 16:50:45,999 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {4957#true} {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} #84#return; {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} is VALID [2022-04-14 16:50:45,999 INFO L290 TraceCheckUtils]: 26: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:45,999 INFO L290 TraceCheckUtils]: 25: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:45,999 INFO L290 TraceCheckUtils]: 24: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:45,999 INFO L272 TraceCheckUtils]: 23: Hoare triple {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:46,000 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4957#true} {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} #82#return; {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} is VALID [2022-04-14 16:50:46,000 INFO L290 TraceCheckUtils]: 21: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:46,000 INFO L290 TraceCheckUtils]: 20: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:46,000 INFO L290 TraceCheckUtils]: 19: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:46,000 INFO L272 TraceCheckUtils]: 18: Hoare triple {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:46,001 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {4957#true} {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} #80#return; {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} is VALID [2022-04-14 16:50:46,001 INFO L290 TraceCheckUtils]: 16: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:46,001 INFO L290 TraceCheckUtils]: 15: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:46,001 INFO L290 TraceCheckUtils]: 14: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:46,001 INFO L272 TraceCheckUtils]: 13: Hoare triple {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:46,001 INFO L290 TraceCheckUtils]: 12: Hoare triple {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} assume !false; {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 11: Hoare triple {4957#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {5449#(= (+ (* (* main_~B~0 main_~p~0) 3) (* main_~B~0 main_~q~0) main_~r~0) (+ main_~A~0 (* main_~d~0 3)))} is VALID [2022-04-14 16:50:46,002 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4957#true} {4957#true} #78#return; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 9: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 8: Hoare triple {4957#true} assume !(0 == ~cond); {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 7: Hoare triple {4957#true} ~cond := #in~cond; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L272 TraceCheckUtils]: 6: Hoare triple {4957#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 5: Hoare triple {4957#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L272 TraceCheckUtils]: 4: Hoare triple {4957#true} call #t~ret5 := main(); {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4957#true} {4957#true} #94#return; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 2: Hoare triple {4957#true} assume true; {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L290 TraceCheckUtils]: 1: Hoare triple {4957#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(8, 2);call #Ultimate.allocInit(12, 3); {4957#true} is VALID [2022-04-14 16:50:46,002 INFO L272 TraceCheckUtils]: 0: Hoare triple {4957#true} call ULTIMATE.init(); {4957#true} is VALID [2022-04-14 16:50:46,004 INFO L134 CoverageAnalysis]: Checked inductivity of 362 backedges. 26 proven. 19 refuted. 5 times theorem prover too weak. 312 trivial. 0 not checked. [2022-04-14 16:50:46,004 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:50:46,004 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1021184162] [2022-04-14 16:50:46,004 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:50:46,004 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [20287175] [2022-04-14 16:50:46,004 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [20287175] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:50:46,004 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:50:46,004 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 16 [2022-04-14 16:50:46,005 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1392261674] [2022-04-14 16:50:46,005 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:50:46,005 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) Word has length 94 [2022-04-14 16:50:46,006 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:50:46,006 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) [2022-04-14 16:50:46,837 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:50:46,837 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-14 16:50:46,837 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:50:46,838 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-14 16:50:46,838 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=179, Unknown=1, NotChecked=0, Total=240 [2022-04-14 16:50:46,838 INFO L87 Difference]: Start difference. First operand 103 states and 122 transitions. Second operand has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) [2022-04-14 16:50:56,788 WARN L232 SmtUtils]: Spent 8.78s on a formula simplification. DAG size of input: 192 DAG size of output: 88 (called from [L 360] de.uni_freiburg.informatik.ultimate.lib.modelcheckerutils.smt.predicates.PredicateUnifier.getOrConstructPredicate) [2022-04-14 16:51:11,201 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:11,201 INFO L93 Difference]: Finished difference Result 228 states and 305 transitions. [2022-04-14 16:51:11,202 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-04-14 16:51:11,202 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) Word has length 94 [2022-04-14 16:51:11,202 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:51:11,202 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) [2022-04-14 16:51:11,206 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 183 transitions. [2022-04-14 16:51:11,207 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) [2022-04-14 16:51:11,210 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 183 transitions. [2022-04-14 16:51:11,210 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 14 states and 183 transitions. [2022-04-14 16:51:12,315 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 183 edges. 183 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:51:12,319 INFO L225 Difference]: With dead ends: 228 [2022-04-14 16:51:12,319 INFO L226 Difference]: Without dead ends: 177 [2022-04-14 16:51:12,320 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 192 GetRequests, 170 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 18.4s TimeCoverageRelationStatistics Valid=114, Invalid=305, Unknown=1, NotChecked=0, Total=420 [2022-04-14 16:51:12,320 INFO L913 BasicCegarLoop]: 61 mSDtfsCounter, 89 mSDsluCounter, 259 mSDsCounter, 0 mSdLazyCounter, 807 mSolverCounterSat, 204 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 5.9s Time, 0 mProtectedPredicate, 0 mProtectedAction, 100 SdHoareTripleChecker+Valid, 320 SdHoareTripleChecker+Invalid, 1011 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 204 IncrementalHoareTripleChecker+Valid, 807 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 5.9s IncrementalHoareTripleChecker+Time [2022-04-14 16:51:12,321 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [100 Valid, 320 Invalid, 1011 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [204 Valid, 807 Invalid, 0 Unknown, 0 Unchecked, 5.9s Time] [2022-04-14 16:51:12,323 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 177 states. [2022-04-14 16:51:12,408 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 177 to 166. [2022-04-14 16:51:12,408 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:51:12,409 INFO L82 GeneralOperation]: Start isEquivalent. First operand 177 states. Second operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) [2022-04-14 16:51:12,409 INFO L74 IsIncluded]: Start isIncluded. First operand 177 states. Second operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) [2022-04-14 16:51:12,409 INFO L87 Difference]: Start difference. First operand 177 states. Second operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) [2022-04-14 16:51:12,414 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:12,414 INFO L93 Difference]: Finished difference Result 177 states and 235 transitions. [2022-04-14 16:51:12,414 INFO L276 IsEmpty]: Start isEmpty. Operand 177 states and 235 transitions. [2022-04-14 16:51:12,415 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:12,415 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:12,416 INFO L74 IsIncluded]: Start isIncluded. First operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) Second operand 177 states. [2022-04-14 16:51:12,416 INFO L87 Difference]: Start difference. First operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) Second operand 177 states. [2022-04-14 16:51:12,421 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:12,421 INFO L93 Difference]: Finished difference Result 177 states and 235 transitions. [2022-04-14 16:51:12,421 INFO L276 IsEmpty]: Start isEmpty. Operand 177 states and 235 transitions. [2022-04-14 16:51:12,422 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:12,422 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:12,422 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:51:12,422 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:51:12,422 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 166 states, 100 states have (on average 1.21) internal successors, (121), 104 states have internal predecessors, (121), 49 states have call successors, (49), 17 states have call predecessors, (49), 16 states have return successors, (47), 44 states have call predecessors, (47), 47 states have call successors, (47) [2022-04-14 16:51:12,426 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 166 states to 166 states and 217 transitions. [2022-04-14 16:51:12,426 INFO L78 Accepts]: Start accepts. Automaton has 166 states and 217 transitions. Word has length 94 [2022-04-14 16:51:12,427 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:51:12,427 INFO L478 AbstractCegarLoop]: Abstraction has 166 states and 217 transitions. [2022-04-14 16:51:12,427 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 16 states have (on average 2.5) internal successors, (40), 15 states have internal predecessors, (40), 11 states have call successors, (31), 2 states have call predecessors, (31), 1 states have return successors, (28), 9 states have call predecessors, (28), 9 states have call successors, (28) [2022-04-14 16:51:12,427 INFO L276 IsEmpty]: Start isEmpty. Operand 166 states and 217 transitions. [2022-04-14 16:51:12,440 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 111 [2022-04-14 16:51:12,440 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:51:12,440 INFO L499 BasicCegarLoop]: trace histogram [17, 16, 16, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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] [2022-04-14 16:51:12,459 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 16:51:12,650 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable9,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:51:12,651 INFO L403 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:51:12,651 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:51:12,651 INFO L85 PathProgramCache]: Analyzing trace with hash 1319164935, now seen corresponding path program 1 times [2022-04-14 16:51:12,651 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:51:12,651 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1202082171] [2022-04-14 16:51:12,651 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:51:12,652 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:51:12,672 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:51:12,674 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [702268706] [2022-04-14 16:51:12,674 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:51:12,674 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:51:12,674 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:51:12,675 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 16:51:12,676 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 16:51:12,741 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:51:12,742 INFO L263 TraceCheckSpWp]: Trace formula consists of 254 conjuncts, 14 conjunts are in the unsatisfiable core [2022-04-14 16:51:12,760 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:51:12,763 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:51:13,295 INFO L272 TraceCheckUtils]: 0: Hoare triple {6463#true} call ULTIMATE.init(); {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L290 TraceCheckUtils]: 1: Hoare triple {6463#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(8, 2);call #Ultimate.allocInit(12, 3); {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L290 TraceCheckUtils]: 2: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6463#true} {6463#true} #94#return; {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L272 TraceCheckUtils]: 4: Hoare triple {6463#true} call #t~ret5 := main(); {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L290 TraceCheckUtils]: 5: Hoare triple {6463#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L272 TraceCheckUtils]: 6: Hoare triple {6463#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L290 TraceCheckUtils]: 7: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,296 INFO L290 TraceCheckUtils]: 8: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,297 INFO L290 TraceCheckUtils]: 9: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,297 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6463#true} {6463#true} #78#return; {6463#true} is VALID [2022-04-14 16:51:13,297 INFO L290 TraceCheckUtils]: 11: Hoare triple {6463#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,298 INFO L290 TraceCheckUtils]: 12: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} assume !false; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,298 INFO L272 TraceCheckUtils]: 13: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,298 INFO L290 TraceCheckUtils]: 14: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,298 INFO L290 TraceCheckUtils]: 15: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,298 INFO L290 TraceCheckUtils]: 16: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,299 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #80#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,299 INFO L272 TraceCheckUtils]: 18: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,299 INFO L290 TraceCheckUtils]: 19: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,299 INFO L290 TraceCheckUtils]: 20: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,299 INFO L290 TraceCheckUtils]: 21: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,300 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #82#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,300 INFO L272 TraceCheckUtils]: 23: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,300 INFO L290 TraceCheckUtils]: 24: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,300 INFO L290 TraceCheckUtils]: 25: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,300 INFO L290 TraceCheckUtils]: 26: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,301 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #84#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,301 INFO L290 TraceCheckUtils]: 28: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,301 INFO L290 TraceCheckUtils]: 29: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} assume !false; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,302 INFO L272 TraceCheckUtils]: 30: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,302 INFO L290 TraceCheckUtils]: 31: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,302 INFO L290 TraceCheckUtils]: 32: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,302 INFO L290 TraceCheckUtils]: 33: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,302 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {6463#true} {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} #80#return; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,303 INFO L272 TraceCheckUtils]: 35: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,303 INFO L290 TraceCheckUtils]: 36: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,303 INFO L290 TraceCheckUtils]: 37: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,303 INFO L290 TraceCheckUtils]: 38: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,303 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {6463#true} {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} #82#return; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,303 INFO L272 TraceCheckUtils]: 40: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,304 INFO L290 TraceCheckUtils]: 41: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,304 INFO L290 TraceCheckUtils]: 42: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,304 INFO L290 TraceCheckUtils]: 43: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,304 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {6463#true} {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} #84#return; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,305 INFO L290 TraceCheckUtils]: 45: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,305 INFO L290 TraceCheckUtils]: 46: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} assume !false; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,306 INFO L272 TraceCheckUtils]: 47: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,306 INFO L290 TraceCheckUtils]: 48: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,306 INFO L290 TraceCheckUtils]: 49: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,306 INFO L290 TraceCheckUtils]: 50: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,306 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {6463#true} {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} #80#return; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,306 INFO L272 TraceCheckUtils]: 52: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,306 INFO L290 TraceCheckUtils]: 53: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,307 INFO L290 TraceCheckUtils]: 54: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,307 INFO L290 TraceCheckUtils]: 55: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,307 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {6463#true} {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} #82#return; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,307 INFO L272 TraceCheckUtils]: 57: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,307 INFO L290 TraceCheckUtils]: 58: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,308 INFO L290 TraceCheckUtils]: 59: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,308 INFO L290 TraceCheckUtils]: 60: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,308 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {6463#true} {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} #84#return; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,309 INFO L290 TraceCheckUtils]: 62: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} assume !(~r~0 >= ~d~0); {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,309 INFO L290 TraceCheckUtils]: 63: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} assume !false; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,309 INFO L272 TraceCheckUtils]: 64: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,309 INFO L290 TraceCheckUtils]: 65: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,309 INFO L290 TraceCheckUtils]: 66: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,309 INFO L290 TraceCheckUtils]: 67: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,310 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {6463#true} {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} #86#return; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,310 INFO L272 TraceCheckUtils]: 69: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,310 INFO L290 TraceCheckUtils]: 70: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,310 INFO L290 TraceCheckUtils]: 71: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,310 INFO L290 TraceCheckUtils]: 72: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,311 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {6463#true} {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} #88#return; {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} is VALID [2022-04-14 16:51:13,312 INFO L290 TraceCheckUtils]: 74: Hoare triple {6605#(and (<= 1 main_~B~0) (= main_~d~0 (* main_~B~0 4)))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,312 INFO L290 TraceCheckUtils]: 75: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,313 INFO L290 TraceCheckUtils]: 76: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} assume !false; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,313 INFO L272 TraceCheckUtils]: 77: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,313 INFO L290 TraceCheckUtils]: 78: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,313 INFO L290 TraceCheckUtils]: 79: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,313 INFO L290 TraceCheckUtils]: 80: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,314 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {6463#true} {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} #86#return; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,314 INFO L272 TraceCheckUtils]: 82: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,314 INFO L290 TraceCheckUtils]: 83: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,314 INFO L290 TraceCheckUtils]: 84: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,314 INFO L290 TraceCheckUtils]: 85: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,315 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {6463#true} {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} #88#return; {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} is VALID [2022-04-14 16:51:13,315 INFO L290 TraceCheckUtils]: 87: Hoare triple {6553#(and (<= 1 main_~B~0) (= (* main_~B~0 2) main_~d~0))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,316 INFO L290 TraceCheckUtils]: 88: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,316 INFO L290 TraceCheckUtils]: 89: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} assume !false; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,316 INFO L272 TraceCheckUtils]: 90: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,316 INFO L290 TraceCheckUtils]: 91: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,317 INFO L290 TraceCheckUtils]: 92: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,317 INFO L290 TraceCheckUtils]: 93: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,317 INFO L284 TraceCheckUtils]: 94: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #86#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,317 INFO L272 TraceCheckUtils]: 95: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,317 INFO L290 TraceCheckUtils]: 96: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,317 INFO L290 TraceCheckUtils]: 97: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,318 INFO L290 TraceCheckUtils]: 98: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,318 INFO L284 TraceCheckUtils]: 99: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #88#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,318 INFO L290 TraceCheckUtils]: 100: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} assume !(1 != ~p~0); {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,319 INFO L272 TraceCheckUtils]: 101: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:13,319 INFO L290 TraceCheckUtils]: 102: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:13,319 INFO L290 TraceCheckUtils]: 103: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:13,319 INFO L290 TraceCheckUtils]: 104: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:13,319 INFO L284 TraceCheckUtils]: 105: Hoare quadruple {6463#true} {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} #90#return; {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:51:13,320 INFO L272 TraceCheckUtils]: 106: Hoare triple {6501#(and (<= 1 main_~B~0) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {6789#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:51:13,320 INFO L290 TraceCheckUtils]: 107: Hoare triple {6789#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6793#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:51:13,320 INFO L290 TraceCheckUtils]: 108: Hoare triple {6793#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6464#false} is VALID [2022-04-14 16:51:13,321 INFO L290 TraceCheckUtils]: 109: Hoare triple {6464#false} assume !false; {6464#false} is VALID [2022-04-14 16:51:13,321 INFO L134 CoverageAnalysis]: Checked inductivity of 540 backedges. 32 proven. 28 refuted. 0 times theorem prover too weak. 480 trivial. 0 not checked. [2022-04-14 16:51:13,321 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:51:14,319 INFO L290 TraceCheckUtils]: 109: Hoare triple {6464#false} assume !false; {6464#false} is VALID [2022-04-14 16:51:14,320 INFO L290 TraceCheckUtils]: 108: Hoare triple {6793#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {6464#false} is VALID [2022-04-14 16:51:14,320 INFO L290 TraceCheckUtils]: 107: Hoare triple {6789#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {6793#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:51:14,321 INFO L272 TraceCheckUtils]: 106: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {6789#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:51:14,321 INFO L284 TraceCheckUtils]: 105: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #90#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,321 INFO L290 TraceCheckUtils]: 104: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,321 INFO L290 TraceCheckUtils]: 103: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,321 INFO L290 TraceCheckUtils]: 102: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,321 INFO L272 TraceCheckUtils]: 101: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,322 INFO L290 TraceCheckUtils]: 100: Hoare triple {6809#(= main_~B~0 main_~d~0)} assume !(1 != ~p~0); {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,322 INFO L284 TraceCheckUtils]: 99: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #88#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,322 INFO L290 TraceCheckUtils]: 98: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,322 INFO L290 TraceCheckUtils]: 97: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,322 INFO L290 TraceCheckUtils]: 96: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,322 INFO L272 TraceCheckUtils]: 95: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,323 INFO L284 TraceCheckUtils]: 94: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #86#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,323 INFO L290 TraceCheckUtils]: 93: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,323 INFO L290 TraceCheckUtils]: 92: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,323 INFO L290 TraceCheckUtils]: 91: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,323 INFO L272 TraceCheckUtils]: 90: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,323 INFO L290 TraceCheckUtils]: 89: Hoare triple {6809#(= main_~B~0 main_~d~0)} assume !false; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,324 INFO L290 TraceCheckUtils]: 88: Hoare triple {6809#(= main_~B~0 main_~d~0)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,325 INFO L290 TraceCheckUtils]: 87: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,325 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {6463#true} {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #88#return; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,325 INFO L290 TraceCheckUtils]: 85: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L290 TraceCheckUtils]: 84: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L290 TraceCheckUtils]: 83: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L272 TraceCheckUtils]: 82: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {6463#true} {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #86#return; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,326 INFO L290 TraceCheckUtils]: 80: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L290 TraceCheckUtils]: 79: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L290 TraceCheckUtils]: 78: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,326 INFO L272 TraceCheckUtils]: 77: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,327 INFO L290 TraceCheckUtils]: 76: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !false; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,328 INFO L290 TraceCheckUtils]: 75: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,330 INFO L290 TraceCheckUtils]: 74: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,330 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {6463#true} {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #88#return; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,330 INFO L290 TraceCheckUtils]: 72: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,330 INFO L290 TraceCheckUtils]: 71: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,330 INFO L290 TraceCheckUtils]: 70: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,330 INFO L272 TraceCheckUtils]: 69: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,331 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {6463#true} {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #86#return; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,331 INFO L290 TraceCheckUtils]: 67: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,331 INFO L290 TraceCheckUtils]: 66: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,331 INFO L290 TraceCheckUtils]: 65: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,331 INFO L272 TraceCheckUtils]: 64: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,332 INFO L290 TraceCheckUtils]: 63: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !false; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,333 INFO L290 TraceCheckUtils]: 62: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !(~r~0 >= ~d~0); {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,333 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {6463#true} {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #84#return; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,333 INFO L290 TraceCheckUtils]: 60: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,333 INFO L290 TraceCheckUtils]: 59: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,333 INFO L290 TraceCheckUtils]: 58: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,333 INFO L272 TraceCheckUtils]: 57: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,334 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {6463#true} {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #82#return; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,334 INFO L290 TraceCheckUtils]: 55: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,334 INFO L290 TraceCheckUtils]: 54: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,334 INFO L290 TraceCheckUtils]: 53: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,334 INFO L272 TraceCheckUtils]: 52: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,335 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {6463#true} {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #80#return; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,335 INFO L290 TraceCheckUtils]: 50: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,336 INFO L290 TraceCheckUtils]: 49: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,336 INFO L290 TraceCheckUtils]: 48: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,336 INFO L272 TraceCheckUtils]: 47: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,336 INFO L290 TraceCheckUtils]: 46: Hoare triple {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !false; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,338 INFO L290 TraceCheckUtils]: 45: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {6907#(and (or (and (or (not (< (div main_~d~0 2) 0)) (= (+ (div (div main_~d~0 2) 2) 1) main_~B~0) (= (mod (div main_~d~0 2) 2) 0)) (or (and (< (div main_~d~0 2) 0) (not (= (mod (div main_~d~0 2) 2) 0))) (= (div (div main_~d~0 2) 2) main_~B~0))) (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0))) (or (and (or (= (+ (div (+ (div main_~d~0 2) 1) 2) 1) main_~B~0) (= 0 (mod (+ (div main_~d~0 2) 1) 2))) (or (= main_~B~0 (div (+ (div main_~d~0 2) 1) 2)) (not (= 0 (mod (+ (div main_~d~0 2) 1) 2))))) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,339 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {6463#true} {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #84#return; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 43: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 42: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 41: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L272 TraceCheckUtils]: 40: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {6463#true} {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #82#return; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 38: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 37: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,339 INFO L290 TraceCheckUtils]: 36: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,340 INFO L272 TraceCheckUtils]: 35: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,340 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {6463#true} {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} #80#return; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,340 INFO L290 TraceCheckUtils]: 33: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,340 INFO L290 TraceCheckUtils]: 32: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,340 INFO L290 TraceCheckUtils]: 31: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,340 INFO L272 TraceCheckUtils]: 30: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,341 INFO L290 TraceCheckUtils]: 29: Hoare triple {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} assume !false; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,342 INFO L290 TraceCheckUtils]: 28: Hoare triple {6809#(= main_~B~0 main_~d~0)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {6867#(and (or (and (not (= (mod main_~d~0 2) 0)) (< main_~d~0 0)) (= main_~B~0 (div main_~d~0 2))) (or (= (+ (div main_~d~0 2) 1) main_~B~0) (not (< main_~d~0 0)) (= (mod main_~d~0 2) 0)))} is VALID [2022-04-14 16:51:14,343 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #84#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,343 INFO L290 TraceCheckUtils]: 26: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,343 INFO L290 TraceCheckUtils]: 25: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,343 INFO L290 TraceCheckUtils]: 24: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,343 INFO L272 TraceCheckUtils]: 23: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,343 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #82#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,343 INFO L290 TraceCheckUtils]: 21: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,343 INFO L290 TraceCheckUtils]: 20: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L290 TraceCheckUtils]: 19: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L272 TraceCheckUtils]: 18: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {6463#true} {6809#(= main_~B~0 main_~d~0)} #80#return; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,344 INFO L290 TraceCheckUtils]: 16: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L290 TraceCheckUtils]: 15: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L290 TraceCheckUtils]: 14: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,344 INFO L272 TraceCheckUtils]: 13: Hoare triple {6809#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 12: Hoare triple {6809#(= main_~B~0 main_~d~0)} assume !false; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 11: Hoare triple {6463#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {6809#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:51:14,345 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6463#true} {6463#true} #78#return; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 9: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 8: Hoare triple {6463#true} assume !(0 == ~cond); {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 7: Hoare triple {6463#true} ~cond := #in~cond; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L272 TraceCheckUtils]: 6: Hoare triple {6463#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 5: Hoare triple {6463#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L272 TraceCheckUtils]: 4: Hoare triple {6463#true} call #t~ret5 := main(); {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6463#true} {6463#true} #94#return; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 2: Hoare triple {6463#true} assume true; {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L290 TraceCheckUtils]: 1: Hoare triple {6463#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(8, 2);call #Ultimate.allocInit(12, 3); {6463#true} is VALID [2022-04-14 16:51:14,345 INFO L272 TraceCheckUtils]: 0: Hoare triple {6463#true} call ULTIMATE.init(); {6463#true} is VALID [2022-04-14 16:51:14,346 INFO L134 CoverageAnalysis]: Checked inductivity of 540 backedges. 32 proven. 28 refuted. 0 times theorem prover too weak. 480 trivial. 0 not checked. [2022-04-14 16:51:14,346 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:51:14,346 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1202082171] [2022-04-14 16:51:14,346 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:51:14,346 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [702268706] [2022-04-14 16:51:14,346 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [702268706] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:51:14,346 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:51:14,347 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 10 [2022-04-14 16:51:14,347 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1043520387] [2022-04-14 16:51:14,347 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:51:14,347 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) Word has length 110 [2022-04-14 16:51:14,348 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:51:14,348 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) [2022-04-14 16:51:14,448 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 113 edges. 113 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:51:14,448 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-14 16:51:14,449 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:51:14,449 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-14 16:51:14,449 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=70, Unknown=0, NotChecked=0, Total=90 [2022-04-14 16:51:14,449 INFO L87 Difference]: Start difference. First operand 166 states and 217 transitions. Second operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) [2022-04-14 16:51:15,462 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:15,463 INFO L93 Difference]: Finished difference Result 182 states and 239 transitions. [2022-04-14 16:51:15,463 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-14 16:51:15,463 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) Word has length 110 [2022-04-14 16:51:15,463 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:51:15,463 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) [2022-04-14 16:51:15,465 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 93 transitions. [2022-04-14 16:51:15,465 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) [2022-04-14 16:51:15,467 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 93 transitions. [2022-04-14 16:51:15,467 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 93 transitions. [2022-04-14 16:51:15,568 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:51:15,572 INFO L225 Difference]: With dead ends: 182 [2022-04-14 16:51:15,572 INFO L226 Difference]: Without dead ends: 174 [2022-04-14 16:51:15,573 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 220 GetRequests, 207 SyntacticMatches, 4 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 5 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=24, Invalid=86, Unknown=0, NotChecked=0, Total=110 [2022-04-14 16:51:15,573 INFO L913 BasicCegarLoop]: 64 mSDtfsCounter, 6 mSDsluCounter, 227 mSDsCounter, 0 mSdLazyCounter, 197 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 6 SdHoareTripleChecker+Valid, 291 SdHoareTripleChecker+Invalid, 197 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 197 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-14 16:51:15,574 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [6 Valid, 291 Invalid, 197 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 197 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-14 16:51:15,575 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 174 states. [2022-04-14 16:51:15,672 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 174 to 174. [2022-04-14 16:51:15,672 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:51:15,673 INFO L82 GeneralOperation]: Start isEquivalent. First operand 174 states. Second operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) [2022-04-14 16:51:15,673 INFO L74 IsIncluded]: Start isIncluded. First operand 174 states. Second operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) [2022-04-14 16:51:15,673 INFO L87 Difference]: Start difference. First operand 174 states. Second operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) [2022-04-14 16:51:15,678 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:15,678 INFO L93 Difference]: Finished difference Result 174 states and 229 transitions. [2022-04-14 16:51:15,678 INFO L276 IsEmpty]: Start isEmpty. Operand 174 states and 229 transitions. [2022-04-14 16:51:15,679 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:15,679 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:15,680 INFO L74 IsIncluded]: Start isIncluded. First operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) Second operand 174 states. [2022-04-14 16:51:15,680 INFO L87 Difference]: Start difference. First operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) Second operand 174 states. [2022-04-14 16:51:15,685 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:15,685 INFO L93 Difference]: Finished difference Result 174 states and 229 transitions. [2022-04-14 16:51:15,685 INFO L276 IsEmpty]: Start isEmpty. Operand 174 states and 229 transitions. [2022-04-14 16:51:15,686 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:15,686 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:15,686 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:51:15,686 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:51:15,687 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 174 states, 104 states have (on average 1.2019230769230769) internal successors, (125), 108 states have internal predecessors, (125), 53 states have call successors, (53), 17 states have call predecessors, (53), 16 states have return successors, (51), 48 states have call predecessors, (51), 51 states have call successors, (51) [2022-04-14 16:51:15,691 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 174 states to 174 states and 229 transitions. [2022-04-14 16:51:15,691 INFO L78 Accepts]: Start accepts. Automaton has 174 states and 229 transitions. Word has length 110 [2022-04-14 16:51:15,692 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:51:15,692 INFO L478 AbstractCegarLoop]: Abstraction has 174 states and 229 transitions. [2022-04-14 16:51:15,692 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 7 states have call successors, (37), 2 states have call predecessors, (37), 1 states have return successors, (34), 7 states have call predecessors, (34), 7 states have call successors, (34) [2022-04-14 16:51:15,692 INFO L276 IsEmpty]: Start isEmpty. Operand 174 states and 229 transitions. [2022-04-14 16:51:15,693 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 124 [2022-04-14 16:51:15,693 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:51:15,694 INFO L499 BasicCegarLoop]: trace histogram [19, 18, 18, 4, 4, 4, 4, 4, 3, 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, 1, 1] [2022-04-14 16:51:15,720 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-04-14 16:51:15,903 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable10 [2022-04-14 16:51:15,904 INFO L403 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:51:15,904 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:51:15,904 INFO L85 PathProgramCache]: Analyzing trace with hash -113269864, now seen corresponding path program 2 times [2022-04-14 16:51:15,904 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:51:15,904 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [449330329] [2022-04-14 16:51:15,904 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:51:15,904 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:51:15,923 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:51:15,923 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [148359706] [2022-04-14 16:51:15,923 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-14 16:51:15,923 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:51:15,924 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:51:15,924 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 16:51:15,925 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-04-14 16:51:15,983 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-14 16:51:15,984 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 16:51:15,984 INFO L263 TraceCheckSpWp]: Trace formula consists of 283 conjuncts, 12 conjunts are in the unsatisfiable core [2022-04-14 16:51:16,000 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:51:16,001 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:51:16,271 INFO L272 TraceCheckUtils]: 0: Hoare triple {7989#true} call ULTIMATE.init(); {7989#true} is VALID [2022-04-14 16:51:16,271 INFO L290 TraceCheckUtils]: 1: Hoare triple {7989#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(8, 2);call #Ultimate.allocInit(12, 3); {7989#true} is VALID [2022-04-14 16:51:16,271 INFO L290 TraceCheckUtils]: 2: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,271 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7989#true} {7989#true} #94#return; {7989#true} is VALID [2022-04-14 16:51:16,271 INFO L272 TraceCheckUtils]: 4: Hoare triple {7989#true} call #t~ret5 := main(); {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L290 TraceCheckUtils]: 5: Hoare triple {7989#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L272 TraceCheckUtils]: 6: Hoare triple {7989#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L290 TraceCheckUtils]: 7: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L290 TraceCheckUtils]: 8: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L290 TraceCheckUtils]: 9: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7989#true} {7989#true} #78#return; {7989#true} is VALID [2022-04-14 16:51:16,272 INFO L290 TraceCheckUtils]: 11: Hoare triple {7989#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,273 INFO L290 TraceCheckUtils]: 12: Hoare triple {8027#(= main_~p~0 1)} assume !false; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,273 INFO L272 TraceCheckUtils]: 13: Hoare triple {8027#(= main_~p~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,273 INFO L290 TraceCheckUtils]: 14: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,273 INFO L290 TraceCheckUtils]: 15: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,273 INFO L290 TraceCheckUtils]: 16: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,275 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {7989#true} {8027#(= main_~p~0 1)} #80#return; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,275 INFO L272 TraceCheckUtils]: 18: Hoare triple {8027#(= main_~p~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,275 INFO L290 TraceCheckUtils]: 19: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,275 INFO L290 TraceCheckUtils]: 20: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,275 INFO L290 TraceCheckUtils]: 21: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,275 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7989#true} {8027#(= main_~p~0 1)} #82#return; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,276 INFO L272 TraceCheckUtils]: 23: Hoare triple {8027#(= main_~p~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,276 INFO L290 TraceCheckUtils]: 24: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,276 INFO L290 TraceCheckUtils]: 25: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,276 INFO L290 TraceCheckUtils]: 26: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,276 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7989#true} {8027#(= main_~p~0 1)} #84#return; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,277 INFO L290 TraceCheckUtils]: 28: Hoare triple {8027#(= main_~p~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,277 INFO L290 TraceCheckUtils]: 29: Hoare triple {8079#(= main_~p~0 2)} assume !false; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,277 INFO L272 TraceCheckUtils]: 30: Hoare triple {8079#(= main_~p~0 2)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,277 INFO L290 TraceCheckUtils]: 31: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,277 INFO L290 TraceCheckUtils]: 32: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,277 INFO L290 TraceCheckUtils]: 33: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,277 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {7989#true} {8079#(= main_~p~0 2)} #80#return; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,278 INFO L272 TraceCheckUtils]: 35: Hoare triple {8079#(= main_~p~0 2)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 36: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 37: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 38: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {7989#true} {8079#(= main_~p~0 2)} #82#return; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,278 INFO L272 TraceCheckUtils]: 40: Hoare triple {8079#(= main_~p~0 2)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 41: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 42: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,278 INFO L290 TraceCheckUtils]: 43: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,279 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7989#true} {8079#(= main_~p~0 2)} #84#return; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,279 INFO L290 TraceCheckUtils]: 45: Hoare triple {8079#(= main_~p~0 2)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,279 INFO L290 TraceCheckUtils]: 46: Hoare triple {8131#(= main_~p~0 4)} assume !false; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,279 INFO L272 TraceCheckUtils]: 47: Hoare triple {8131#(= main_~p~0 4)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 48: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 49: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 50: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {7989#true} {8131#(= main_~p~0 4)} #80#return; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,280 INFO L272 TraceCheckUtils]: 52: Hoare triple {8131#(= main_~p~0 4)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 53: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 54: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,280 INFO L290 TraceCheckUtils]: 55: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,281 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {7989#true} {8131#(= main_~p~0 4)} #82#return; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,281 INFO L272 TraceCheckUtils]: 57: Hoare triple {8131#(= main_~p~0 4)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,281 INFO L290 TraceCheckUtils]: 58: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,281 INFO L290 TraceCheckUtils]: 59: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,281 INFO L290 TraceCheckUtils]: 60: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,282 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {7989#true} {8131#(= main_~p~0 4)} #84#return; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,282 INFO L290 TraceCheckUtils]: 62: Hoare triple {8131#(= main_~p~0 4)} assume !(~r~0 >= ~d~0); {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,283 INFO L290 TraceCheckUtils]: 63: Hoare triple {8131#(= main_~p~0 4)} assume !false; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,283 INFO L272 TraceCheckUtils]: 64: Hoare triple {8131#(= main_~p~0 4)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,283 INFO L290 TraceCheckUtils]: 65: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,283 INFO L290 TraceCheckUtils]: 66: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,283 INFO L290 TraceCheckUtils]: 67: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,283 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {7989#true} {8131#(= main_~p~0 4)} #86#return; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,284 INFO L272 TraceCheckUtils]: 69: Hoare triple {8131#(= main_~p~0 4)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,284 INFO L290 TraceCheckUtils]: 70: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,284 INFO L290 TraceCheckUtils]: 71: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,284 INFO L290 TraceCheckUtils]: 72: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,284 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {7989#true} {8131#(= main_~p~0 4)} #88#return; {8131#(= main_~p~0 4)} is VALID [2022-04-14 16:51:16,285 INFO L290 TraceCheckUtils]: 74: Hoare triple {8131#(= main_~p~0 4)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,285 INFO L290 TraceCheckUtils]: 75: Hoare triple {8079#(= main_~p~0 2)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,285 INFO L290 TraceCheckUtils]: 76: Hoare triple {8079#(= main_~p~0 2)} assume !false; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,285 INFO L272 TraceCheckUtils]: 77: Hoare triple {8079#(= main_~p~0 2)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,285 INFO L290 TraceCheckUtils]: 78: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,285 INFO L290 TraceCheckUtils]: 79: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,286 INFO L290 TraceCheckUtils]: 80: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,286 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {7989#true} {8079#(= main_~p~0 2)} #86#return; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,286 INFO L272 TraceCheckUtils]: 82: Hoare triple {8079#(= main_~p~0 2)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,287 INFO L290 TraceCheckUtils]: 83: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,287 INFO L290 TraceCheckUtils]: 84: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,287 INFO L290 TraceCheckUtils]: 85: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,291 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {7989#true} {8079#(= main_~p~0 2)} #88#return; {8079#(= main_~p~0 2)} is VALID [2022-04-14 16:51:16,291 INFO L290 TraceCheckUtils]: 87: Hoare triple {8079#(= main_~p~0 2)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,291 INFO L290 TraceCheckUtils]: 88: Hoare triple {8027#(= main_~p~0 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,292 INFO L290 TraceCheckUtils]: 89: Hoare triple {8027#(= main_~p~0 1)} assume !false; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,292 INFO L272 TraceCheckUtils]: 90: Hoare triple {8027#(= main_~p~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,292 INFO L290 TraceCheckUtils]: 91: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,292 INFO L290 TraceCheckUtils]: 92: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,292 INFO L290 TraceCheckUtils]: 93: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,292 INFO L284 TraceCheckUtils]: 94: Hoare quadruple {7989#true} {8027#(= main_~p~0 1)} #86#return; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,292 INFO L272 TraceCheckUtils]: 95: Hoare triple {8027#(= main_~p~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,293 INFO L290 TraceCheckUtils]: 96: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,293 INFO L290 TraceCheckUtils]: 97: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,293 INFO L290 TraceCheckUtils]: 98: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,293 INFO L284 TraceCheckUtils]: 99: Hoare quadruple {7989#true} {8027#(= main_~p~0 1)} #88#return; {8027#(= main_~p~0 1)} is VALID [2022-04-14 16:51:16,293 INFO L290 TraceCheckUtils]: 100: Hoare triple {8027#(= main_~p~0 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:16,294 INFO L290 TraceCheckUtils]: 101: Hoare triple {8297#(<= main_~p~0 0)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:16,294 INFO L290 TraceCheckUtils]: 102: Hoare triple {8297#(<= main_~p~0 0)} assume !false; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:16,294 INFO L272 TraceCheckUtils]: 103: Hoare triple {8297#(<= main_~p~0 0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,294 INFO L290 TraceCheckUtils]: 104: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,294 INFO L290 TraceCheckUtils]: 105: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,294 INFO L290 TraceCheckUtils]: 106: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,295 INFO L284 TraceCheckUtils]: 107: Hoare quadruple {7989#true} {8297#(<= main_~p~0 0)} #86#return; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:16,295 INFO L272 TraceCheckUtils]: 108: Hoare triple {8297#(<= main_~p~0 0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:16,295 INFO L290 TraceCheckUtils]: 109: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:16,295 INFO L290 TraceCheckUtils]: 110: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:16,295 INFO L290 TraceCheckUtils]: 111: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:16,295 INFO L284 TraceCheckUtils]: 112: Hoare quadruple {7989#true} {8297#(<= main_~p~0 0)} #88#return; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 113: Hoare triple {8297#(<= main_~p~0 0)} assume !(1 != ~p~0); {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L272 TraceCheckUtils]: 114: Hoare triple {7990#false} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 115: Hoare triple {7990#false} ~cond := #in~cond; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 116: Hoare triple {7990#false} assume !(0 == ~cond); {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 117: Hoare triple {7990#false} assume true; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L284 TraceCheckUtils]: 118: Hoare quadruple {7990#false} {7990#false} #90#return; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L272 TraceCheckUtils]: 119: Hoare triple {7990#false} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 120: Hoare triple {7990#false} ~cond := #in~cond; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 121: Hoare triple {7990#false} assume 0 == ~cond; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L290 TraceCheckUtils]: 122: Hoare triple {7990#false} assume !false; {7990#false} is VALID [2022-04-14 16:51:16,296 INFO L134 CoverageAnalysis]: Checked inductivity of 690 backedges. 102 proven. 42 refuted. 0 times theorem prover too weak. 546 trivial. 0 not checked. [2022-04-14 16:51:16,297 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 122: Hoare triple {7990#false} assume !false; {7990#false} is VALID [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 121: Hoare triple {7990#false} assume 0 == ~cond; {7990#false} is VALID [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 120: Hoare triple {7990#false} ~cond := #in~cond; {7990#false} is VALID [2022-04-14 16:51:17,123 INFO L272 TraceCheckUtils]: 119: Hoare triple {7990#false} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {7990#false} is VALID [2022-04-14 16:51:17,123 INFO L284 TraceCheckUtils]: 118: Hoare quadruple {7989#true} {7990#false} #90#return; {7990#false} is VALID [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 117: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 116: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,123 INFO L290 TraceCheckUtils]: 115: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,123 INFO L272 TraceCheckUtils]: 114: Hoare triple {7990#false} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,124 INFO L290 TraceCheckUtils]: 113: Hoare triple {8297#(<= main_~p~0 0)} assume !(1 != ~p~0); {7990#false} is VALID [2022-04-14 16:51:17,124 INFO L284 TraceCheckUtils]: 112: Hoare quadruple {7989#true} {8297#(<= main_~p~0 0)} #88#return; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:17,124 INFO L290 TraceCheckUtils]: 111: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,124 INFO L290 TraceCheckUtils]: 110: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,124 INFO L290 TraceCheckUtils]: 109: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,124 INFO L272 TraceCheckUtils]: 108: Hoare triple {8297#(<= main_~p~0 0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,125 INFO L284 TraceCheckUtils]: 107: Hoare quadruple {7989#true} {8297#(<= main_~p~0 0)} #86#return; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:17,125 INFO L290 TraceCheckUtils]: 106: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,125 INFO L290 TraceCheckUtils]: 105: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,125 INFO L290 TraceCheckUtils]: 104: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,125 INFO L272 TraceCheckUtils]: 103: Hoare triple {8297#(<= main_~p~0 0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,125 INFO L290 TraceCheckUtils]: 102: Hoare triple {8297#(<= main_~p~0 0)} assume !false; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:17,126 INFO L290 TraceCheckUtils]: 101: Hoare triple {8297#(<= main_~p~0 0)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:17,126 INFO L290 TraceCheckUtils]: 100: Hoare triple {8430#(<= (div main_~p~0 2) 0)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8297#(<= main_~p~0 0)} is VALID [2022-04-14 16:51:17,127 INFO L284 TraceCheckUtils]: 99: Hoare quadruple {7989#true} {8430#(<= (div main_~p~0 2) 0)} #88#return; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,127 INFO L290 TraceCheckUtils]: 98: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,127 INFO L290 TraceCheckUtils]: 97: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,127 INFO L290 TraceCheckUtils]: 96: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,127 INFO L272 TraceCheckUtils]: 95: Hoare triple {8430#(<= (div main_~p~0 2) 0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,129 INFO L284 TraceCheckUtils]: 94: Hoare quadruple {7989#true} {8430#(<= (div main_~p~0 2) 0)} #86#return; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,129 INFO L290 TraceCheckUtils]: 93: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,129 INFO L290 TraceCheckUtils]: 92: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,130 INFO L290 TraceCheckUtils]: 91: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,130 INFO L272 TraceCheckUtils]: 90: Hoare triple {8430#(<= (div main_~p~0 2) 0)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,130 INFO L290 TraceCheckUtils]: 89: Hoare triple {8430#(<= (div main_~p~0 2) 0)} assume !false; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,130 INFO L290 TraceCheckUtils]: 88: Hoare triple {8430#(<= (div main_~p~0 2) 0)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,131 INFO L290 TraceCheckUtils]: 87: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,131 INFO L284 TraceCheckUtils]: 86: Hoare quadruple {7989#true} {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} #88#return; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 85: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 84: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 83: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L272 TraceCheckUtils]: 82: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L284 TraceCheckUtils]: 81: Hoare quadruple {7989#true} {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} #86#return; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 80: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 79: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,132 INFO L290 TraceCheckUtils]: 78: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,133 INFO L272 TraceCheckUtils]: 77: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,133 INFO L290 TraceCheckUtils]: 76: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} assume !false; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,133 INFO L290 TraceCheckUtils]: 75: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,134 INFO L290 TraceCheckUtils]: 74: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,135 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {7989#true} {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} #88#return; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,135 INFO L290 TraceCheckUtils]: 72: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,135 INFO L290 TraceCheckUtils]: 71: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,135 INFO L290 TraceCheckUtils]: 70: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,135 INFO L272 TraceCheckUtils]: 69: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,135 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {7989#true} {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} #86#return; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,135 INFO L290 TraceCheckUtils]: 67: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,135 INFO L290 TraceCheckUtils]: 66: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,136 INFO L290 TraceCheckUtils]: 65: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,136 INFO L272 TraceCheckUtils]: 64: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,136 INFO L290 TraceCheckUtils]: 63: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} assume !false; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,136 INFO L290 TraceCheckUtils]: 62: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} assume !(~r~0 >= ~d~0); {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,137 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {7989#true} {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} #84#return; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 60: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 59: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 58: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L272 TraceCheckUtils]: 57: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {7989#true} {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} #82#return; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 55: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 54: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L290 TraceCheckUtils]: 53: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,137 INFO L272 TraceCheckUtils]: 52: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,138 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {7989#true} {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} #80#return; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,138 INFO L290 TraceCheckUtils]: 50: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,138 INFO L290 TraceCheckUtils]: 49: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,138 INFO L290 TraceCheckUtils]: 48: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,138 INFO L272 TraceCheckUtils]: 47: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,138 INFO L290 TraceCheckUtils]: 46: Hoare triple {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} assume !false; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,139 INFO L290 TraceCheckUtils]: 45: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {8510#(<= (div (+ (- 1) (div (+ (- 3) (* (- 1) (div main_~p~0 2))) 2)) (- 2)) 2)} is VALID [2022-04-14 16:51:17,140 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7989#true} {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} #84#return; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,140 INFO L290 TraceCheckUtils]: 43: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,140 INFO L290 TraceCheckUtils]: 42: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,140 INFO L290 TraceCheckUtils]: 41: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,140 INFO L272 TraceCheckUtils]: 40: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,140 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {7989#true} {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} #82#return; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,140 INFO L290 TraceCheckUtils]: 38: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L290 TraceCheckUtils]: 37: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L290 TraceCheckUtils]: 36: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L272 TraceCheckUtils]: 35: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {7989#true} {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} #80#return; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,141 INFO L290 TraceCheckUtils]: 33: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L290 TraceCheckUtils]: 32: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L290 TraceCheckUtils]: 31: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,141 INFO L272 TraceCheckUtils]: 30: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,142 INFO L290 TraceCheckUtils]: 29: Hoare triple {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} assume !false; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,142 INFO L290 TraceCheckUtils]: 28: Hoare triple {8430#(<= (div main_~p~0 2) 0)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {8470#(<= (div (+ (- 1) (* (- 1) (div main_~p~0 2))) (- 2)) 1)} is VALID [2022-04-14 16:51:17,143 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {7989#true} {8430#(<= (div main_~p~0 2) 0)} #84#return; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 26: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 25: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 24: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L272 TraceCheckUtils]: 23: Hoare triple {8430#(<= (div main_~p~0 2) 0)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7989#true} {8430#(<= (div main_~p~0 2) 0)} #82#return; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 21: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 20: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L290 TraceCheckUtils]: 19: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,143 INFO L272 TraceCheckUtils]: 18: Hoare triple {8430#(<= (div main_~p~0 2) 0)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,144 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {7989#true} {8430#(<= (div main_~p~0 2) 0)} #80#return; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,144 INFO L290 TraceCheckUtils]: 16: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,144 INFO L290 TraceCheckUtils]: 15: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,144 INFO L290 TraceCheckUtils]: 14: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,144 INFO L272 TraceCheckUtils]: 13: Hoare triple {8430#(<= (div main_~p~0 2) 0)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,144 INFO L290 TraceCheckUtils]: 12: Hoare triple {8430#(<= (div main_~p~0 2) 0)} assume !false; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 11: Hoare triple {7989#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {8430#(<= (div main_~p~0 2) 0)} is VALID [2022-04-14 16:51:17,145 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7989#true} {7989#true} #78#return; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 9: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 8: Hoare triple {7989#true} assume !(0 == ~cond); {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 7: Hoare triple {7989#true} ~cond := #in~cond; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L272 TraceCheckUtils]: 6: Hoare triple {7989#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 5: Hoare triple {7989#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L272 TraceCheckUtils]: 4: Hoare triple {7989#true} call #t~ret5 := main(); {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7989#true} {7989#true} #94#return; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 2: Hoare triple {7989#true} assume true; {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L290 TraceCheckUtils]: 1: Hoare triple {7989#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(8, 2);call #Ultimate.allocInit(12, 3); {7989#true} is VALID [2022-04-14 16:51:17,145 INFO L272 TraceCheckUtils]: 0: Hoare triple {7989#true} call ULTIMATE.init(); {7989#true} is VALID [2022-04-14 16:51:17,146 INFO L134 CoverageAnalysis]: Checked inductivity of 690 backedges. 63 proven. 15 refuted. 0 times theorem prover too weak. 612 trivial. 0 not checked. [2022-04-14 16:51:17,146 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:51:17,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [449330329] [2022-04-14 16:51:17,146 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:51:17,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [148359706] [2022-04-14 16:51:17,146 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [148359706] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:51:17,146 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:51:17,146 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [6, 6] total 9 [2022-04-14 16:51:17,146 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1026436434] [2022-04-14 16:51:17,147 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:51:17,147 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) Word has length 123 [2022-04-14 16:51:17,147 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:51:17,148 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) [2022-04-14 16:51:17,250 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 121 edges. 121 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:51:17,250 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-14 16:51:17,250 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:51:17,251 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-14 16:51:17,251 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=45, Unknown=0, NotChecked=0, Total=72 [2022-04-14 16:51:17,251 INFO L87 Difference]: Start difference. First operand 174 states and 229 transitions. Second operand has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) [2022-04-14 16:51:17,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:17,764 INFO L93 Difference]: Finished difference Result 203 states and 266 transitions. [2022-04-14 16:51:17,764 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-14 16:51:17,764 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) Word has length 123 [2022-04-14 16:51:17,765 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:51:17,765 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) [2022-04-14 16:51:17,766 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 101 transitions. [2022-04-14 16:51:17,767 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) [2022-04-14 16:51:17,768 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 101 transitions. [2022-04-14 16:51:17,768 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 101 transitions. [2022-04-14 16:51:17,855 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 101 edges. 101 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:51:17,858 INFO L225 Difference]: With dead ends: 203 [2022-04-14 16:51:17,858 INFO L226 Difference]: Without dead ends: 136 [2022-04-14 16:51:17,858 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 245 GetRequests, 235 SyntacticMatches, 3 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 6 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=27, Invalid=45, Unknown=0, NotChecked=0, Total=72 [2022-04-14 16:51:17,859 INFO L913 BasicCegarLoop]: 64 mSDtfsCounter, 3 mSDsluCounter, 226 mSDsCounter, 0 mSdLazyCounter, 149 mSolverCounterSat, 6 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 4 SdHoareTripleChecker+Valid, 290 SdHoareTripleChecker+Invalid, 155 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 6 IncrementalHoareTripleChecker+Valid, 149 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-14 16:51:17,859 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [4 Valid, 290 Invalid, 155 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [6 Valid, 149 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-14 16:51:17,859 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 136 states. [2022-04-14 16:51:17,933 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 136 to 136. [2022-04-14 16:51:17,933 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:51:17,934 INFO L82 GeneralOperation]: Start isEquivalent. First operand 136 states. Second operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) [2022-04-14 16:51:17,934 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) [2022-04-14 16:51:17,934 INFO L87 Difference]: Start difference. First operand 136 states. Second operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) [2022-04-14 16:51:17,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:17,938 INFO L93 Difference]: Finished difference Result 136 states and 167 transitions. [2022-04-14 16:51:17,938 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 167 transitions. [2022-04-14 16:51:17,938 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:17,938 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:17,939 INFO L74 IsIncluded]: Start isIncluded. First operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) Second operand 136 states. [2022-04-14 16:51:17,939 INFO L87 Difference]: Start difference. First operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) Second operand 136 states. [2022-04-14 16:51:17,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:51:17,942 INFO L93 Difference]: Finished difference Result 136 states and 167 transitions. [2022-04-14 16:51:17,942 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 167 transitions. [2022-04-14 16:51:17,942 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:51:17,942 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:51:17,943 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:51:17,943 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:51:17,943 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 136 states, 82 states have (on average 1.1585365853658536) internal successors, (95), 86 states have internal predecessors, (95), 37 states have call successors, (37), 17 states have call predecessors, (37), 16 states have return successors, (35), 32 states have call predecessors, (35), 35 states have call successors, (35) [2022-04-14 16:51:17,946 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 136 states to 136 states and 167 transitions. [2022-04-14 16:51:17,946 INFO L78 Accepts]: Start accepts. Automaton has 136 states and 167 transitions. Word has length 123 [2022-04-14 16:51:17,946 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:51:17,946 INFO L478 AbstractCegarLoop]: Abstraction has 136 states and 167 transitions. [2022-04-14 16:51:17,947 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 5.222222222222222) internal successors, (47), 9 states have internal predecessors, (47), 9 states have call successors, (38), 2 states have call predecessors, (38), 2 states have return successors, (36), 9 states have call predecessors, (36), 9 states have call successors, (36) [2022-04-14 16:51:17,947 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 167 transitions. [2022-04-14 16:51:17,947 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 125 [2022-04-14 16:51:17,948 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:51:17,948 INFO L499 BasicCegarLoop]: trace histogram [19, 18, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:51:17,975 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Forceful destruction successful, exit code 0 [2022-04-14 16:51:18,172 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable11,10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:51:18,172 INFO L403 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:51:18,172 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:51:18,172 INFO L85 PathProgramCache]: Analyzing trace with hash -238794489, now seen corresponding path program 3 times [2022-04-14 16:51:18,173 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:51:18,173 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [653904319] [2022-04-14 16:51:18,173 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:51:18,173 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:51:18,186 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:51:18,186 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1287178926] [2022-04-14 16:51:18,186 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-14 16:51:18,186 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:51:18,186 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:51:18,187 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 16:51:18,195 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-14 16:51:18,265 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2022-04-14 16:51:18,266 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 16:51:18,267 INFO L263 TraceCheckSpWp]: Trace formula consists of 178 conjuncts, 24 conjunts are in the unsatisfiable core [2022-04-14 16:51:18,284 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:51:18,285 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:51:21,018 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 16:51:25,257 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 16:51:31,529 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-14 16:51:31,873 INFO L272 TraceCheckUtils]: 0: Hoare triple {9489#true} call ULTIMATE.init(); {9489#true} is VALID [2022-04-14 16:51:31,873 INFO L290 TraceCheckUtils]: 1: Hoare triple {9489#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(8, 2);call #Ultimate.allocInit(12, 3); {9489#true} is VALID [2022-04-14 16:51:31,873 INFO L290 TraceCheckUtils]: 2: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,873 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {9489#true} {9489#true} #94#return; {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L272 TraceCheckUtils]: 4: Hoare triple {9489#true} call #t~ret5 := main(); {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 5: Hoare triple {9489#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L272 TraceCheckUtils]: 6: Hoare triple {9489#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 7: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 8: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 9: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {9489#true} {9489#true} #78#return; {9489#true} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 11: Hoare triple {9489#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,874 INFO L290 TraceCheckUtils]: 12: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,874 INFO L272 TraceCheckUtils]: 13: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 14: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 15: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 16: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #80#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,875 INFO L272 TraceCheckUtils]: 18: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 19: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 20: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,875 INFO L290 TraceCheckUtils]: 21: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,876 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #82#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,876 INFO L272 TraceCheckUtils]: 23: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,876 INFO L290 TraceCheckUtils]: 24: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,876 INFO L290 TraceCheckUtils]: 25: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,876 INFO L290 TraceCheckUtils]: 26: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,876 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #84#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,877 INFO L290 TraceCheckUtils]: 28: Hoare triple {9527#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,877 INFO L290 TraceCheckUtils]: 29: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,877 INFO L272 TraceCheckUtils]: 30: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,877 INFO L290 TraceCheckUtils]: 31: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,877 INFO L290 TraceCheckUtils]: 32: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,877 INFO L290 TraceCheckUtils]: 33: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #80#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,878 INFO L272 TraceCheckUtils]: 35: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L290 TraceCheckUtils]: 36: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L290 TraceCheckUtils]: 37: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L290 TraceCheckUtils]: 38: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #82#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,878 INFO L272 TraceCheckUtils]: 40: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,878 INFO L290 TraceCheckUtils]: 41: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,879 INFO L290 TraceCheckUtils]: 42: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,879 INFO L290 TraceCheckUtils]: 43: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,879 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #84#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,879 INFO L290 TraceCheckUtils]: 45: Hoare triple {9527#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 46: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,880 INFO L272 TraceCheckUtils]: 47: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 48: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 49: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 50: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #80#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,880 INFO L272 TraceCheckUtils]: 52: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 53: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 54: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,880 INFO L290 TraceCheckUtils]: 55: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,881 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #82#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,881 INFO L272 TraceCheckUtils]: 57: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,881 INFO L290 TraceCheckUtils]: 58: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,881 INFO L290 TraceCheckUtils]: 59: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,881 INFO L290 TraceCheckUtils]: 60: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,887 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #84#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,888 INFO L290 TraceCheckUtils]: 62: Hoare triple {9527#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,888 INFO L290 TraceCheckUtils]: 63: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,888 INFO L272 TraceCheckUtils]: 64: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,888 INFO L290 TraceCheckUtils]: 65: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,888 INFO L290 TraceCheckUtils]: 66: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,888 INFO L290 TraceCheckUtils]: 67: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,889 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #80#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,889 INFO L272 TraceCheckUtils]: 69: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,889 INFO L290 TraceCheckUtils]: 70: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,889 INFO L290 TraceCheckUtils]: 71: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,889 INFO L290 TraceCheckUtils]: 72: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,890 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #82#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,890 INFO L272 TraceCheckUtils]: 74: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,890 INFO L290 TraceCheckUtils]: 75: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,890 INFO L290 TraceCheckUtils]: 76: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,890 INFO L290 TraceCheckUtils]: 77: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,891 INFO L284 TraceCheckUtils]: 78: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #84#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,891 INFO L290 TraceCheckUtils]: 79: Hoare triple {9527#(= main_~B~0 1)} assume !(~r~0 >= ~d~0); {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,891 INFO L290 TraceCheckUtils]: 80: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,891 INFO L272 TraceCheckUtils]: 81: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,891 INFO L290 TraceCheckUtils]: 82: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,892 INFO L290 TraceCheckUtils]: 83: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,892 INFO L290 TraceCheckUtils]: 84: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,892 INFO L284 TraceCheckUtils]: 85: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #86#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,892 INFO L272 TraceCheckUtils]: 86: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,892 INFO L290 TraceCheckUtils]: 87: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,893 INFO L290 TraceCheckUtils]: 88: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,893 INFO L290 TraceCheckUtils]: 89: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,893 INFO L284 TraceCheckUtils]: 90: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #88#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,893 INFO L290 TraceCheckUtils]: 91: Hoare triple {9527#(= main_~B~0 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,894 INFO L290 TraceCheckUtils]: 92: Hoare triple {9527#(= main_~B~0 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,894 INFO L290 TraceCheckUtils]: 93: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,894 INFO L272 TraceCheckUtils]: 94: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,894 INFO L290 TraceCheckUtils]: 95: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,894 INFO L290 TraceCheckUtils]: 96: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,895 INFO L290 TraceCheckUtils]: 97: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,895 INFO L284 TraceCheckUtils]: 98: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #86#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,895 INFO L272 TraceCheckUtils]: 99: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,895 INFO L290 TraceCheckUtils]: 100: Hoare triple {9489#true} ~cond := #in~cond; {9489#true} is VALID [2022-04-14 16:51:31,896 INFO L290 TraceCheckUtils]: 101: Hoare triple {9489#true} assume !(0 == ~cond); {9489#true} is VALID [2022-04-14 16:51:31,896 INFO L290 TraceCheckUtils]: 102: Hoare triple {9489#true} assume true; {9489#true} is VALID [2022-04-14 16:51:31,896 INFO L284 TraceCheckUtils]: 103: Hoare quadruple {9489#true} {9527#(= main_~B~0 1)} #88#return; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,896 INFO L290 TraceCheckUtils]: 104: Hoare triple {9527#(= main_~B~0 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,897 INFO L290 TraceCheckUtils]: 105: Hoare triple {9527#(= main_~B~0 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,897 INFO L290 TraceCheckUtils]: 106: Hoare triple {9527#(= main_~B~0 1)} assume !false; {9527#(= main_~B~0 1)} is VALID [2022-04-14 16:51:31,897 INFO L272 TraceCheckUtils]: 107: Hoare triple {9527#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,897 INFO L290 TraceCheckUtils]: 108: Hoare triple {9489#true} ~cond := #in~cond; {9819#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:51:31,898 INFO L290 TraceCheckUtils]: 109: Hoare triple {9819#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:51:31,898 INFO L290 TraceCheckUtils]: 110: Hoare triple {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:51:31,899 INFO L284 TraceCheckUtils]: 111: Hoare quadruple {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} {9527#(= main_~B~0 1)} #86#return; {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} is VALID [2022-04-14 16:51:31,899 INFO L272 TraceCheckUtils]: 112: Hoare triple {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {9489#true} is VALID [2022-04-14 16:51:31,899 INFO L290 TraceCheckUtils]: 113: Hoare triple {9489#true} ~cond := #in~cond; {9819#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:51:31,900 INFO L290 TraceCheckUtils]: 114: Hoare triple {9819#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:51:31,900 INFO L290 TraceCheckUtils]: 115: Hoare triple {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:51:31,901 INFO L284 TraceCheckUtils]: 116: Hoare quadruple {9823#(not (= |__VERIFIER_assert_#in~cond| 0))} {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} #88#return; {9846#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} is VALID [2022-04-14 16:51:31,902 INFO L290 TraceCheckUtils]: 117: Hoare triple {9846#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {9846#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} is VALID [2022-04-14 16:51:31,903 INFO L290 TraceCheckUtils]: 118: Hoare triple {9846#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} is VALID [2022-04-14 16:51:31,903 INFO L290 TraceCheckUtils]: 119: Hoare triple {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} assume !false; {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} is VALID [2022-04-14 16:51:31,904 INFO L272 TraceCheckUtils]: 120: Hoare triple {9830#(and (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0))} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {9859#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:51:31,904 INFO L290 TraceCheckUtils]: 121: Hoare triple {9859#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9863#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:51:31,905 INFO L290 TraceCheckUtils]: 122: Hoare triple {9863#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {9490#false} is VALID [2022-04-14 16:51:31,905 INFO L290 TraceCheckUtils]: 123: Hoare triple {9490#false} assume !false; {9490#false} is VALID [2022-04-14 16:51:31,905 INFO L134 CoverageAnalysis]: Checked inductivity of 699 backedges. 142 proven. 2 refuted. 0 times theorem prover too weak. 555 trivial. 0 not checked. [2022-04-14 16:51:31,905 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:53:25,258 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:53:25,259 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [653904319] [2022-04-14 16:53:25,259 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:53:25,259 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1287178926] [2022-04-14 16:53:25,259 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1287178926] provided 0 perfect and 1 imperfect interpolant sequences [2022-04-14 16:53:25,259 INFO L184 FreeRefinementEngine]: Found 0 perfect and 1 imperfect interpolant sequences. [2022-04-14 16:53:25,259 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9] total 9 [2022-04-14 16:53:25,259 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [571713689] [2022-04-14 16:53:25,259 INFO L85 oduleStraightlineAll]: Using 1 imperfect interpolants to construct interpolant automaton [2022-04-14 16:53:25,259 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) Word has length 124 [2022-04-14 16:53:25,260 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:53:25,260 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-14 16:53:25,299 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:53:25,300 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-14 16:53:25,300 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:53:25,300 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-14 16:53:25,300 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=122, Unknown=0, NotChecked=0, Total=156 [2022-04-14 16:53:25,300 INFO L87 Difference]: Start difference. First operand 136 states and 167 transitions. Second operand has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-14 16:53:25,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:25,655 INFO L93 Difference]: Finished difference Result 142 states and 172 transitions. [2022-04-14 16:53:25,655 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-04-14 16:53:25,655 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) Word has length 124 [2022-04-14 16:53:25,656 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:53:25,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-14 16:53:25,657 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 43 transitions. [2022-04-14 16:53:25,657 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-14 16:53:25,657 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 43 transitions. [2022-04-14 16:53:25,657 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 7 states and 43 transitions. [2022-04-14 16:53:25,704 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:53:25,706 INFO L225 Difference]: With dead ends: 142 [2022-04-14 16:53:25,706 INFO L226 Difference]: Without dead ends: 138 [2022-04-14 16:53:25,707 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 133 GetRequests, 117 SyntacticMatches, 3 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 31 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=45, Invalid=165, Unknown=0, NotChecked=0, Total=210 [2022-04-14 16:53:25,707 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 18 mSDsluCounter, 88 mSDsCounter, 0 mSdLazyCounter, 119 mSolverCounterSat, 14 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 23 SdHoareTripleChecker+Valid, 113 SdHoareTripleChecker+Invalid, 133 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 14 IncrementalHoareTripleChecker+Valid, 119 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-14 16:53:25,708 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [23 Valid, 113 Invalid, 133 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [14 Valid, 119 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-14 16:53:25,708 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2022-04-14 16:53:25,775 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 118. [2022-04-14 16:53:25,776 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:53:25,776 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) [2022-04-14 16:53:25,776 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) [2022-04-14 16:53:25,776 INFO L87 Difference]: Start difference. First operand 138 states. Second operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) [2022-04-14 16:53:25,779 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:25,780 INFO L93 Difference]: Finished difference Result 138 states and 168 transitions. [2022-04-14 16:53:25,780 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 168 transitions. [2022-04-14 16:53:25,780 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:53:25,780 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:53:25,780 INFO L74 IsIncluded]: Start isIncluded. First operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) Second operand 138 states. [2022-04-14 16:53:25,781 INFO L87 Difference]: Start difference. First operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) Second operand 138 states. [2022-04-14 16:53:25,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:25,784 INFO L93 Difference]: Finished difference Result 138 states and 168 transitions. [2022-04-14 16:53:25,784 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 168 transitions. [2022-04-14 16:53:25,784 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:53:25,784 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:53:25,784 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:53:25,784 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:53:25,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 118 states, 73 states have (on average 1.1095890410958904) internal successors, (81), 73 states have internal predecessors, (81), 29 states have call successors, (29), 17 states have call predecessors, (29), 15 states have return successors, (27), 27 states have call predecessors, (27), 27 states have call successors, (27) [2022-04-14 16:53:25,787 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 118 states to 118 states and 137 transitions. [2022-04-14 16:53:25,787 INFO L78 Accepts]: Start accepts. Automaton has 118 states and 137 transitions. Word has length 124 [2022-04-14 16:53:25,788 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:53:25,788 INFO L478 AbstractCegarLoop]: Abstraction has 118 states and 137 transitions. [2022-04-14 16:53:25,788 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 2.7777777777777777) internal successors, (25), 8 states have internal predecessors, (25), 3 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (9), 4 states have call predecessors, (9), 3 states have call successors, (9) [2022-04-14 16:53:25,788 INFO L276 IsEmpty]: Start isEmpty. Operand 118 states and 137 transitions. [2022-04-14 16:53:25,789 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 128 [2022-04-14 16:53:25,789 INFO L491 BasicCegarLoop]: Found error trace [2022-04-14 16:53:25,789 INFO L499 BasicCegarLoop]: trace histogram [20, 19, 19, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:53:25,811 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Forceful destruction successful, exit code 0 [2022-04-14 16:53:26,003 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable12 [2022-04-14 16:53:26,004 INFO L403 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-14 16:53:26,004 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-14 16:53:26,004 INFO L85 PathProgramCache]: Analyzing trace with hash -1341863176, now seen corresponding path program 3 times [2022-04-14 16:53:26,004 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-14 16:53:26,004 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1293502816] [2022-04-14 16:53:26,004 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-14 16:53:26,004 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-14 16:53:26,019 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-14 16:53:26,019 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1371131977] [2022-04-14 16:53:26,020 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST2 [2022-04-14 16:53:26,020 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-14 16:53:26,020 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-14 16:53:26,021 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-14 16:53:26,023 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Waiting until timeout for monitored process [2022-04-14 16:53:26,074 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2022-04-14 16:53:26,074 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-14 16:53:26,075 INFO L263 TraceCheckSpWp]: Trace formula consists of 158 conjuncts, 12 conjunts are in the unsatisfiable core [2022-04-14 16:53:26,091 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-14 16:53:26,092 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-14 16:53:26,394 INFO L272 TraceCheckUtils]: 0: Hoare triple {10546#true} call ULTIMATE.init(); {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L290 TraceCheckUtils]: 1: Hoare triple {10546#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(8, 2);call #Ultimate.allocInit(12, 3); {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L290 TraceCheckUtils]: 2: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10546#true} {10546#true} #94#return; {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L272 TraceCheckUtils]: 4: Hoare triple {10546#true} call #t~ret5 := main(); {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L290 TraceCheckUtils]: 5: Hoare triple {10546#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L272 TraceCheckUtils]: 6: Hoare triple {10546#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,394 INFO L290 TraceCheckUtils]: 7: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 8: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 9: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10546#true} {10546#true} #78#return; {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 11: Hoare triple {10546#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 12: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,395 INFO L272 TraceCheckUtils]: 13: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 14: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,395 INFO L290 TraceCheckUtils]: 15: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,396 INFO L290 TraceCheckUtils]: 16: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,396 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #80#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,396 INFO L272 TraceCheckUtils]: 18: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,396 INFO L290 TraceCheckUtils]: 19: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,396 INFO L290 TraceCheckUtils]: 20: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,397 INFO L290 TraceCheckUtils]: 21: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,397 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #82#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,397 INFO L272 TraceCheckUtils]: 23: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,397 INFO L290 TraceCheckUtils]: 24: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,397 INFO L290 TraceCheckUtils]: 25: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,397 INFO L290 TraceCheckUtils]: 26: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,399 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #84#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,399 INFO L290 TraceCheckUtils]: 28: Hoare triple {10584#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 29: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,400 INFO L272 TraceCheckUtils]: 30: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 31: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 32: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 33: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #80#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,400 INFO L272 TraceCheckUtils]: 35: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 36: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,400 INFO L290 TraceCheckUtils]: 37: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,401 INFO L290 TraceCheckUtils]: 38: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,401 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #82#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,401 INFO L272 TraceCheckUtils]: 40: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,401 INFO L290 TraceCheckUtils]: 41: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,401 INFO L290 TraceCheckUtils]: 42: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,401 INFO L290 TraceCheckUtils]: 43: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,402 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #84#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,402 INFO L290 TraceCheckUtils]: 45: Hoare triple {10584#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,402 INFO L290 TraceCheckUtils]: 46: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,402 INFO L272 TraceCheckUtils]: 47: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,402 INFO L290 TraceCheckUtils]: 48: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,402 INFO L290 TraceCheckUtils]: 49: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,402 INFO L290 TraceCheckUtils]: 50: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,408 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #80#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,408 INFO L272 TraceCheckUtils]: 52: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,408 INFO L290 TraceCheckUtils]: 53: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,408 INFO L290 TraceCheckUtils]: 54: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,408 INFO L290 TraceCheckUtils]: 55: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,409 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #82#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,409 INFO L272 TraceCheckUtils]: 57: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,409 INFO L290 TraceCheckUtils]: 58: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,409 INFO L290 TraceCheckUtils]: 59: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,409 INFO L290 TraceCheckUtils]: 60: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,410 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #84#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,410 INFO L290 TraceCheckUtils]: 62: Hoare triple {10584#(= main_~B~0 1)} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,410 INFO L290 TraceCheckUtils]: 63: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,410 INFO L272 TraceCheckUtils]: 64: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,410 INFO L290 TraceCheckUtils]: 65: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,411 INFO L290 TraceCheckUtils]: 66: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,411 INFO L290 TraceCheckUtils]: 67: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,411 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #80#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,411 INFO L272 TraceCheckUtils]: 69: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,411 INFO L290 TraceCheckUtils]: 70: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,411 INFO L290 TraceCheckUtils]: 71: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,412 INFO L290 TraceCheckUtils]: 72: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,412 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #82#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,412 INFO L272 TraceCheckUtils]: 74: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,412 INFO L290 TraceCheckUtils]: 75: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,412 INFO L290 TraceCheckUtils]: 76: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,412 INFO L290 TraceCheckUtils]: 77: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,413 INFO L284 TraceCheckUtils]: 78: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #84#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,413 INFO L290 TraceCheckUtils]: 79: Hoare triple {10584#(= main_~B~0 1)} assume !(~r~0 >= ~d~0); {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,414 INFO L290 TraceCheckUtils]: 80: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,414 INFO L272 TraceCheckUtils]: 81: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,414 INFO L290 TraceCheckUtils]: 82: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,414 INFO L290 TraceCheckUtils]: 83: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,414 INFO L290 TraceCheckUtils]: 84: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,415 INFO L284 TraceCheckUtils]: 85: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #86#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,415 INFO L272 TraceCheckUtils]: 86: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,415 INFO L290 TraceCheckUtils]: 87: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,415 INFO L290 TraceCheckUtils]: 88: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,415 INFO L290 TraceCheckUtils]: 89: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,421 INFO L284 TraceCheckUtils]: 90: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #88#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,421 INFO L290 TraceCheckUtils]: 91: Hoare triple {10584#(= main_~B~0 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,421 INFO L290 TraceCheckUtils]: 92: Hoare triple {10584#(= main_~B~0 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,422 INFO L290 TraceCheckUtils]: 93: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,422 INFO L272 TraceCheckUtils]: 94: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,422 INFO L290 TraceCheckUtils]: 95: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,422 INFO L290 TraceCheckUtils]: 96: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,422 INFO L290 TraceCheckUtils]: 97: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,422 INFO L284 TraceCheckUtils]: 98: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #86#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,423 INFO L272 TraceCheckUtils]: 99: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,423 INFO L290 TraceCheckUtils]: 100: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,423 INFO L290 TraceCheckUtils]: 101: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,423 INFO L290 TraceCheckUtils]: 102: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,423 INFO L284 TraceCheckUtils]: 103: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #88#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,423 INFO L290 TraceCheckUtils]: 104: Hoare triple {10584#(= main_~B~0 1)} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,424 INFO L290 TraceCheckUtils]: 105: Hoare triple {10584#(= main_~B~0 1)} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,424 INFO L290 TraceCheckUtils]: 106: Hoare triple {10584#(= main_~B~0 1)} assume !false; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,424 INFO L272 TraceCheckUtils]: 107: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,424 INFO L290 TraceCheckUtils]: 108: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,424 INFO L290 TraceCheckUtils]: 109: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,424 INFO L290 TraceCheckUtils]: 110: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,425 INFO L284 TraceCheckUtils]: 111: Hoare quadruple {10546#true} {10584#(= main_~B~0 1)} #86#return; {10584#(= main_~B~0 1)} is VALID [2022-04-14 16:53:26,425 INFO L272 TraceCheckUtils]: 112: Hoare triple {10584#(= main_~B~0 1)} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,425 INFO L290 TraceCheckUtils]: 113: Hoare triple {10546#true} ~cond := #in~cond; {10891#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:53:26,425 INFO L290 TraceCheckUtils]: 114: Hoare triple {10891#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:53:26,425 INFO L290 TraceCheckUtils]: 115: Hoare triple {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:53:26,426 INFO L284 TraceCheckUtils]: 116: Hoare quadruple {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} {10584#(= main_~B~0 1)} #88#return; {10902#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1))} is VALID [2022-04-14 16:53:26,426 INFO L290 TraceCheckUtils]: 117: Hoare triple {10902#(and (= (* main_~B~0 main_~p~0) main_~d~0) (= main_~B~0 1))} assume !(1 != ~p~0); {10906#(and (= main_~B~0 1) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:53:26,426 INFO L272 TraceCheckUtils]: 118: Hoare triple {10906#(and (= main_~B~0 1) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:26,427 INFO L290 TraceCheckUtils]: 119: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:26,427 INFO L290 TraceCheckUtils]: 120: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:26,427 INFO L290 TraceCheckUtils]: 121: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:26,427 INFO L284 TraceCheckUtils]: 122: Hoare quadruple {10546#true} {10906#(and (= main_~B~0 1) (= main_~B~0 main_~d~0))} #90#return; {10906#(and (= main_~B~0 1) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:53:26,428 INFO L272 TraceCheckUtils]: 123: Hoare triple {10906#(and (= main_~B~0 1) (= main_~B~0 main_~d~0))} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {10925#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:53:26,428 INFO L290 TraceCheckUtils]: 124: Hoare triple {10925#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10929#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:53:26,428 INFO L290 TraceCheckUtils]: 125: Hoare triple {10929#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10547#false} is VALID [2022-04-14 16:53:26,428 INFO L290 TraceCheckUtils]: 126: Hoare triple {10547#false} assume !false; {10547#false} is VALID [2022-04-14 16:53:26,429 INFO L134 CoverageAnalysis]: Checked inductivity of 765 backedges. 90 proven. 4 refuted. 0 times theorem prover too weak. 671 trivial. 0 not checked. [2022-04-14 16:53:26,429 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-14 16:53:30,462 INFO L290 TraceCheckUtils]: 126: Hoare triple {10547#false} assume !false; {10547#false} is VALID [2022-04-14 16:53:30,462 INFO L290 TraceCheckUtils]: 125: Hoare triple {10929#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {10547#false} is VALID [2022-04-14 16:53:30,463 INFO L290 TraceCheckUtils]: 124: Hoare triple {10925#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {10929#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-14 16:53:30,463 INFO L272 TraceCheckUtils]: 123: Hoare triple {10945#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~B~0 == ~d~0 then 1 else 0)); {10925#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-14 16:53:30,464 INFO L284 TraceCheckUtils]: 122: Hoare quadruple {10546#true} {10945#(= main_~B~0 main_~d~0)} #90#return; {10945#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:53:30,464 INFO L290 TraceCheckUtils]: 121: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,464 INFO L290 TraceCheckUtils]: 120: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,464 INFO L290 TraceCheckUtils]: 119: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,464 INFO L272 TraceCheckUtils]: 118: Hoare triple {10945#(= main_~B~0 main_~d~0)} call __VERIFIER_assert((if ~A~0 == ~d~0 * ~q~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,465 INFO L290 TraceCheckUtils]: 117: Hoare triple {10964#(or (not (= main_~p~0 1)) (= main_~B~0 main_~d~0))} assume !(1 != ~p~0); {10945#(= main_~B~0 main_~d~0)} is VALID [2022-04-14 16:53:30,465 INFO L284 TraceCheckUtils]: 116: Hoare quadruple {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} {10546#true} #88#return; {10964#(or (not (= main_~p~0 1)) (= main_~B~0 main_~d~0))} is VALID [2022-04-14 16:53:30,466 INFO L290 TraceCheckUtils]: 115: Hoare triple {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:53:30,466 INFO L290 TraceCheckUtils]: 114: Hoare triple {10977#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {10895#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-14 16:53:30,466 INFO L290 TraceCheckUtils]: 113: Hoare triple {10546#true} ~cond := #in~cond; {10977#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-14 16:53:30,466 INFO L272 TraceCheckUtils]: 112: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L284 TraceCheckUtils]: 111: Hoare quadruple {10546#true} {10546#true} #86#return; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 110: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 109: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 108: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L272 TraceCheckUtils]: 107: Hoare triple {10546#true} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 106: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 105: Hoare triple {10546#true} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 104: Hoare triple {10546#true} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L284 TraceCheckUtils]: 103: Hoare quadruple {10546#true} {10546#true} #88#return; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 102: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 101: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 100: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L272 TraceCheckUtils]: 99: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L284 TraceCheckUtils]: 98: Hoare quadruple {10546#true} {10546#true} #86#return; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 97: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,467 INFO L290 TraceCheckUtils]: 96: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 95: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L272 TraceCheckUtils]: 94: Hoare triple {10546#true} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 93: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 92: Hoare triple {10546#true} assume ~r~0 >= ~d~0;~r~0 := ~r~0 - ~d~0;~q~0 := ~q~0 + ~p~0; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 91: Hoare triple {10546#true} assume !!(1 != ~p~0);~d~0 := (if ~d~0 < 0 && 0 != ~d~0 % 2 then 1 + ~d~0 / 2 else ~d~0 / 2);~p~0 := (if ~p~0 < 0 && 0 != ~p~0 % 2 then 1 + ~p~0 / 2 else ~p~0 / 2); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L284 TraceCheckUtils]: 90: Hoare quadruple {10546#true} {10546#true} #88#return; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 89: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 88: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 87: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L272 TraceCheckUtils]: 86: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L284 TraceCheckUtils]: 85: Hoare quadruple {10546#true} {10546#true} #86#return; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 84: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 83: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,468 INFO L290 TraceCheckUtils]: 82: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L272 TraceCheckUtils]: 81: Hoare triple {10546#true} call __VERIFIER_assert((if ~A~0 == ~q~0 * ~B~0 + ~r~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 80: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 79: Hoare triple {10546#true} assume !(~r~0 >= ~d~0); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L284 TraceCheckUtils]: 78: Hoare quadruple {10546#true} {10546#true} #84#return; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 77: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 76: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 75: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L272 TraceCheckUtils]: 74: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L284 TraceCheckUtils]: 73: Hoare quadruple {10546#true} {10546#true} #82#return; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 72: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 71: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 70: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L272 TraceCheckUtils]: 69: Hoare triple {10546#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L284 TraceCheckUtils]: 68: Hoare quadruple {10546#true} {10546#true} #80#return; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 67: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,469 INFO L290 TraceCheckUtils]: 66: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 65: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L272 TraceCheckUtils]: 64: Hoare triple {10546#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 63: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 62: Hoare triple {10546#true} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {10546#true} {10546#true} #84#return; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 60: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 59: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 58: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L272 TraceCheckUtils]: 57: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {10546#true} {10546#true} #82#return; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 55: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 54: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 53: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L272 TraceCheckUtils]: 52: Hoare triple {10546#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {10546#true} {10546#true} #80#return; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 50: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,470 INFO L290 TraceCheckUtils]: 49: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 48: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L272 TraceCheckUtils]: 47: Hoare triple {10546#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 46: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 45: Hoare triple {10546#true} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {10546#true} {10546#true} #84#return; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 43: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 42: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 41: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L272 TraceCheckUtils]: 40: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {10546#true} {10546#true} #82#return; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 38: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,471 INFO L290 TraceCheckUtils]: 37: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 36: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L272 TraceCheckUtils]: 35: Hoare triple {10546#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {10546#true} {10546#true} #80#return; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 33: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 32: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 31: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L272 TraceCheckUtils]: 30: Hoare triple {10546#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 29: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 28: Hoare triple {10546#true} assume !!(~r~0 >= ~d~0);~d~0 := 2 * ~d~0;~p~0 := 2 * ~p~0; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {10546#true} {10546#true} #84#return; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 26: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 25: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 24: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L272 TraceCheckUtils]: 23: Hoare triple {10546#true} call __VERIFIER_assert((if ~d~0 == ~B~0 * ~p~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10546#true} {10546#true} #82#return; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 21: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,472 INFO L290 TraceCheckUtils]: 20: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 19: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L272 TraceCheckUtils]: 18: Hoare triple {10546#true} call __VERIFIER_assert((if ~r~0 == ~A~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {10546#true} {10546#true} #80#return; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 16: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 15: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 14: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L272 TraceCheckUtils]: 13: Hoare triple {10546#true} call __VERIFIER_assert((if 0 == ~q~0 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 12: Hoare triple {10546#true} assume !false; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 11: Hoare triple {10546#true} ~B~0 := 1;~r~0 := ~A~0;~d~0 := ~B~0;~p~0 := 1;~q~0 := 0; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {10546#true} {10546#true} #78#return; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 9: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,473 INFO L290 TraceCheckUtils]: 8: Hoare triple {10546#true} assume !(0 == ~cond); {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L290 TraceCheckUtils]: 7: Hoare triple {10546#true} ~cond := #in~cond; {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L272 TraceCheckUtils]: 6: Hoare triple {10546#true} call assume_abort_if_not((if ~A~0 >= 0 && ~A~0 <= 100 then 1 else 0)); {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L290 TraceCheckUtils]: 5: Hoare triple {10546#true} havoc ~A~0;havoc ~B~0;havoc ~r~0;havoc ~d~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~A~0 := #t~nondet4;havoc #t~nondet4; {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L272 TraceCheckUtils]: 4: Hoare triple {10546#true} call #t~ret5 := main(); {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {10546#true} {10546#true} #94#return; {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L290 TraceCheckUtils]: 2: Hoare triple {10546#true} assume true; {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L290 TraceCheckUtils]: 1: Hoare triple {10546#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(8, 2);call #Ultimate.allocInit(12, 3); {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L272 TraceCheckUtils]: 0: Hoare triple {10546#true} call ULTIMATE.init(); {10546#true} is VALID [2022-04-14 16:53:30,474 INFO L134 CoverageAnalysis]: Checked inductivity of 765 backedges. 90 proven. 4 refuted. 0 times theorem prover too weak. 671 trivial. 0 not checked. [2022-04-14 16:53:30,474 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-14 16:53:30,474 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1293502816] [2022-04-14 16:53:30,475 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-14 16:53:30,475 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1371131977] [2022-04-14 16:53:30,475 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1371131977] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-14 16:53:30,475 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-14 16:53:30,475 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 12 [2022-04-14 16:53:30,475 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [957407252] [2022-04-14 16:53:30,475 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-04-14 16:53:30,475 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) Word has length 127 [2022-04-14 16:53:30,476 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-14 16:53:30,476 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) [2022-04-14 16:53:30,520 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:53:30,520 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-04-14 16:53:30,520 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-04-14 16:53:30,521 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-04-14 16:53:30,521 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=31, Invalid=101, Unknown=0, NotChecked=0, Total=132 [2022-04-14 16:53:30,521 INFO L87 Difference]: Start difference. First operand 118 states and 137 transitions. Second operand has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) [2022-04-14 16:53:31,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:31,003 INFO L93 Difference]: Finished difference Result 126 states and 143 transitions. [2022-04-14 16:53:31,003 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-04-14 16:53:31,004 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) Word has length 127 [2022-04-14 16:53:31,004 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-14 16:53:31,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) [2022-04-14 16:53:31,005 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 49 transitions. [2022-04-14 16:53:31,005 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) [2022-04-14 16:53:31,006 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 49 transitions. [2022-04-14 16:53:31,006 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 8 states and 49 transitions. [2022-04-14 16:53:31,059 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-14 16:53:31,060 INFO L225 Difference]: With dead ends: 126 [2022-04-14 16:53:31,060 INFO L226 Difference]: Without dead ends: 0 [2022-04-14 16:53:31,060 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 257 GetRequests, 243 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=51, Invalid=159, Unknown=0, NotChecked=0, Total=210 [2022-04-14 16:53:31,061 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 23 mSDsluCounter, 108 mSDsCounter, 0 mSdLazyCounter, 160 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 27 SdHoareTripleChecker+Valid, 132 SdHoareTripleChecker+Invalid, 185 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 25 IncrementalHoareTripleChecker+Valid, 160 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-14 16:53:31,061 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [27 Valid, 132 Invalid, 185 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [25 Valid, 160 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-14 16:53:31,061 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-04-14 16:53:31,061 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-04-14 16:53:31,061 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-14 16:53:31,062 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-14 16:53:31,062 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-14 16:53:31,062 INFO L87 Difference]: Start difference. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-14 16:53:31,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:31,062 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-14 16:53:31,062 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 16:53:31,062 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:53:31,062 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:53:31,062 INFO L74 IsIncluded]: Start isIncluded. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-14 16:53:31,062 INFO L87 Difference]: Start difference. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Second operand 0 states. [2022-04-14 16:53:31,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-14 16:53:31,062 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-14 16:53:31,063 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 16:53:31,063 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:53:31,063 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-14 16:53:31,063 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-14 16:53:31,063 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-14 16:53:31,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-14 16:53:31,063 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-04-14 16:53:31,063 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 127 [2022-04-14 16:53:31,063 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-14 16:53:31,063 INFO L478 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-04-14 16:53:31,064 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 10 states have (on average 3.3) internal successors, (33), 9 states have internal predecessors, (33), 4 states have call successors, (17), 2 states have call predecessors, (17), 2 states have return successors, (16), 6 states have call predecessors, (16), 4 states have call successors, (16) [2022-04-14 16:53:31,064 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-14 16:53:31,064 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-14 16:53:31,066 INFO L788 garLoopResultBuilder]: Registering result SAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-04-14 16:53:31,092 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Forceful destruction successful, exit code 0 [2022-04-14 16:53:31,275 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 12 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable13 [2022-04-14 16:53:31,277 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-04-14 16:53:38,236 WARN L232 SmtUtils]: Spent 5.99s on a formula simplification. DAG size of input: 144 DAG size of output: 16 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-14 16:53:44,338 INFO L882 garLoopResultBuilder]: For program point reach_errorEXIT(line 8) no Hoare annotation was computed. [2022-04-14 16:53:44,338 INFO L882 garLoopResultBuilder]: For program point reach_errorENTRY(line 8) no Hoare annotation was computed. [2022-04-14 16:53:44,338 INFO L882 garLoopResultBuilder]: For program point reach_errorFINAL(line 8) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L885 garLoopResultBuilder]: At program point assume_abort_if_notENTRY(lines 11 13) the Hoare annotation is: true [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point L12(line 12) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point L12-2(lines 11 13) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point assume_abort_if_notEXIT(lines 11 13) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L878 garLoopResultBuilder]: At program point L58(line 58) the Hoare annotation is: (let ((.cse0 (= main_~B~0 main_~d~0))) (or (and (= main_~B~0 1) .cse0 (= main_~p~0 1)) (and (<= 1 main_~B~0) (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (<= 1 main_~p~0) .cse0))) [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point mainEXIT(lines 22 61) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point L52(lines 52 55) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point L52-2(lines 22 61) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point L46(lines 44 56) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L882 garLoopResultBuilder]: For program point mainFINAL(lines 22 61) no Hoare annotation was computed. [2022-04-14 16:53:44,339 INFO L878 garLoopResultBuilder]: At program point L44-1(lines 44 56) the Hoare annotation is: (and (<= 1 main_~B~0) (= (+ (* main_~d~0 main_~q~0) main_~r~0) main_~A~0) (<= 1 main_~p~0) (= main_~B~0 main_~d~0)) [2022-04-14 16:53:44,339 INFO L878 garLoopResultBuilder]: At program point L36(line 36) the Hoare annotation is: (let ((.cse3 (* main_~B~0 main_~q~0))) (let ((.cse0 (= main_~q~0 0)) (.cse1 (= main_~B~0 1)) (.cse2 (= (+ .cse3 main_~r~0) main_~A~0))) (or (and .cse0 .cse1 .cse2 (= main_~B~0 main_~d~0) (= main_~p~0 1)) (and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) .cse0 .cse1 .cse2) (and (<= 1 (div (div main_~p~0 2) 2)) (= (+ main_~A~0 main_~d~0) (+ (* main_~B~0 main_~p~0) .cse3 main_~r~0)) .cse0 .cse1 .cse2)))) [2022-04-14 16:53:44,339 INFO L878 garLoopResultBuilder]: At program point L34-2(lines 34 42) the Hoare annotation is: (let ((.cse3 (* main_~B~0 main_~q~0))) (let ((.cse0 (= main_~q~0 0)) (.cse1 (= main_~B~0 1)) (.cse2 (= (+ .cse3 main_~r~0) main_~A~0))) (or (and .cse0 .cse1 .cse2 (= main_~B~0 main_~d~0) (= main_~p~0 1)) (and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) .cse0 .cse1 .cse2) (and (<= 1 (div (div main_~p~0 2) 2)) (= (+ main_~A~0 main_~d~0) (+ (* main_~B~0 main_~p~0) .cse3 main_~r~0)) .cse0 .cse1 .cse2)))) [2022-04-14 16:53:44,340 INFO L885 garLoopResultBuilder]: At program point mainENTRY(lines 22 61) the Hoare annotation is: true [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point L59(line 59) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L885 garLoopResultBuilder]: At program point L26(line 26) the Hoare annotation is: true [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point L26-1(line 26) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L878 garLoopResultBuilder]: At program point L45(line 45) the Hoare annotation is: (and (= (* main_~B~0 main_~p~0) main_~d~0) (<= 1 main_~p~0) (= main_~B~0 1) (= (+ (* main_~B~0 main_~q~0) main_~r~0) main_~A~0)) [2022-04-14 16:53:44,340 INFO L878 garLoopResultBuilder]: At program point L45-1(line 45) the Hoare annotation is: (let ((.cse1 (* main_~B~0 main_~q~0))) (let ((.cse0 (div main_~p~0 2)) (.cse2 (= (+ .cse1 main_~r~0) main_~A~0))) (or (and (<= 1 .cse0) (= (+ main_~A~0 main_~d~0) (+ (* main_~B~0 main_~p~0) .cse1 main_~r~0)) (= main_~B~0 1) .cse2) (and (= (let ((.cse3 (div main_~d~0 2))) (+ (div .cse3 2) main_~A~0 .cse3)) (+ .cse1 main_~r~0 (* main_~B~0 (div .cse0 2)) (* main_~B~0 .cse0))) (<= 1 main_~B~0) .cse2 (= main_~B~0 main_~d~0) (= main_~p~0 1))))) [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point L37(lines 34 42) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L878 garLoopResultBuilder]: At program point L35(line 35) the Hoare annotation is: (let ((.cse3 (* main_~B~0 main_~q~0))) (let ((.cse0 (= main_~q~0 0)) (.cse1 (= main_~B~0 1)) (.cse2 (= (+ .cse3 main_~r~0) main_~A~0))) (or (and .cse0 .cse1 .cse2 (= main_~B~0 main_~d~0) (= main_~p~0 1)) (and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) .cse0 .cse1 .cse2) (and (<= 1 (div (div main_~p~0 2) 2)) (= (+ main_~A~0 main_~d~0) (+ (* main_~B~0 main_~p~0) .cse3 main_~r~0)) .cse0 .cse1 .cse2)))) [2022-04-14 16:53:44,340 INFO L878 garLoopResultBuilder]: At program point L35-1(line 35) the Hoare annotation is: (let ((.cse3 (* main_~B~0 main_~q~0))) (let ((.cse0 (= main_~q~0 0)) (.cse1 (= main_~B~0 1)) (.cse2 (= (+ .cse3 main_~r~0) main_~A~0))) (or (and .cse0 .cse1 .cse2 (= main_~B~0 main_~d~0) (= main_~p~0 1)) (and (= (* main_~B~0 2) main_~d~0) (= main_~p~0 2) .cse0 .cse1 .cse2) (and (<= 1 (div (div main_~p~0 2) 2)) (= (+ main_~A~0 main_~d~0) (+ (* main_~B~0 main_~p~0) .cse3 main_~r~0)) .cse0 .cse1 .cse2)))) [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initFINAL(line -1) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L878 garLoopResultBuilder]: At program point ULTIMATE.initENTRY(line -1) the Hoare annotation is: (and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|)) [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.initEXIT(line -1) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L885 garLoopResultBuilder]: At program point L-1(line -1) the Hoare annotation is: true [2022-04-14 16:53:44,340 INFO L885 garLoopResultBuilder]: At program point ULTIMATE.startENTRY(line -1) the Hoare annotation is: true [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-04-14 16:53:44,340 INFO L882 garLoopResultBuilder]: For program point L16(lines 16 17) no Hoare annotation was computed. [2022-04-14 16:53:44,341 INFO L882 garLoopResultBuilder]: For program point L15(lines 15 18) no Hoare annotation was computed. [2022-04-14 16:53:44,341 INFO L885 garLoopResultBuilder]: At program point __VERIFIER_assertENTRY(lines 14 20) the Hoare annotation is: true [2022-04-14 16:53:44,341 INFO L882 garLoopResultBuilder]: For program point L15-2(lines 14 20) no Hoare annotation was computed. [2022-04-14 16:53:44,341 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertEXIT(lines 14 20) no Hoare annotation was computed. [2022-04-14 16:53:44,341 INFO L882 garLoopResultBuilder]: For program point __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION(line 17) no Hoare annotation was computed. [2022-04-14 16:53:44,343 INFO L719 BasicCegarLoop]: Path program histogram: [3, 3, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-14 16:53:44,343 INFO L177 ceAbstractionStarter]: Computing trace abstraction results [2022-04-14 16:53:44,346 WARN L170 areAnnotationChecker]: reach_errorENTRY has no Hoare annotation [2022-04-14 16:53:44,346 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-14 16:53:44,347 WARN L170 areAnnotationChecker]: L12 has no Hoare annotation [2022-04-14 16:53:44,347 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-14 16:53:44,347 WARN L170 areAnnotationChecker]: reach_errorFINAL has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: ULTIMATE.initFINAL has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L12 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L12 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L26-1 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L15 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: ULTIMATE.initEXIT has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L12-2 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L26-1 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L16 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L16 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L15-2 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: assume_abort_if_notEXIT has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L52-2 has no Hoare annotation [2022-04-14 16:53:44,348 WARN L170 areAnnotationChecker]: L52-2 has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: __VERIFIER_assertEXIT has no Hoare annotation [2022-04-14 16:53:44,350 WARN L170 areAnnotationChecker]: L52-2 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L52-2 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L52-2 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L37 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L37 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L37 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L59 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L59 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L52 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: L52 has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: mainFINAL has no Hoare annotation [2022-04-14 16:53:44,351 WARN L170 areAnnotationChecker]: mainEXIT has no Hoare annotation [2022-04-14 16:53:44,351 INFO L163 areAnnotationChecker]: CFG has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2022-04-14 16:53:44,360 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 14.04 04:53:44 BoogieIcfgContainer [2022-04-14 16:53:44,360 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-04-14 16:53:44,361 INFO L158 Benchmark]: Toolchain (without parser) took 232203.85ms. Allocated memory was 181.4MB in the beginning and 300.9MB in the end (delta: 119.5MB). Free memory was 131.0MB in the beginning and 160.7MB in the end (delta: -29.7MB). Peak memory consumption was 152.7MB. Max. memory is 8.0GB. [2022-04-14 16:53:44,361 INFO L158 Benchmark]: CDTParser took 0.10ms. Allocated memory is still 181.4MB. Free memory is still 147.7MB. There was no memory consumed. Max. memory is 8.0GB. [2022-04-14 16:53:44,361 INFO L158 Benchmark]: CACSL2BoogieTranslator took 208.11ms. Allocated memory is still 181.4MB. Free memory was 130.7MB in the beginning and 158.1MB in the end (delta: -27.4MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. [2022-04-14 16:53:44,362 INFO L158 Benchmark]: Boogie Preprocessor took 27.71ms. Allocated memory is still 181.4MB. Free memory was 158.1MB in the beginning and 156.6MB in the end (delta: 1.5MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2022-04-14 16:53:44,362 INFO L158 Benchmark]: RCFGBuilder took 344.80ms. Allocated memory is still 181.4MB. Free memory was 156.6MB in the beginning and 145.1MB in the end (delta: 11.5MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. [2022-04-14 16:53:44,362 INFO L158 Benchmark]: TraceAbstraction took 231616.96ms. Allocated memory was 181.4MB in the beginning and 300.9MB in the end (delta: 119.5MB). Free memory was 144.5MB in the beginning and 160.7MB in the end (delta: -16.2MB). Peak memory consumption was 166.7MB. Max. memory is 8.0GB. [2022-04-14 16:53:44,363 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.10ms. Allocated memory is still 181.4MB. Free memory is still 147.7MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 208.11ms. Allocated memory is still 181.4MB. Free memory was 130.7MB in the beginning and 158.1MB in the end (delta: -27.4MB). Peak memory consumption was 12.6MB. Max. memory is 8.0GB. * Boogie Preprocessor took 27.71ms. Allocated memory is still 181.4MB. Free memory was 158.1MB in the beginning and 156.6MB in the end (delta: 1.5MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * RCFGBuilder took 344.80ms. Allocated memory is still 181.4MB. Free memory was 156.6MB in the beginning and 145.1MB in the end (delta: 11.5MB). Peak memory consumption was 11.5MB. Max. memory is 8.0GB. * TraceAbstraction took 231616.96ms. Allocated memory was 181.4MB in the beginning and 300.9MB in the end (delta: 119.5MB). Free memory was 144.5MB in the beginning and 160.7MB in the end (delta: -16.2MB). Peak memory consumption was 166.7MB. Max. memory is 8.0GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - PositiveResult [Line: 17]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - StatisticsResult: Ultimate Automizer benchmark data CFG has 6 procedures, 38 locations, 1 error locations. Started 1 CEGAR loops. OverallTime: 231.6s, OverallIterations: 14, TraceHistogramMax: 20, PathProgramHistogramMax: 3, EmptinessCheckTime: 0.0s, AutomataDifference: 38.6s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 13.1s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 0 mSolverCounterUnknown, 409 SdHoareTripleChecker+Valid, 8.5s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 338 mSDsluCounter, 2037 SdHoareTripleChecker+Invalid, 8.5s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 0 IncrementalHoareTripleChecker+Unchecked, 1469 mSDsCounter, 442 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 2470 IncrementalHoareTripleChecker+Invalid, 2912 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 442 mSolverCounterUnsat, 568 mSDtfsCounter, 2470 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 1596 GetRequests, 1452 SyntacticMatches, 22 SemanticMatches, 122 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 123 ImplicationChecksByTransitivity, 23.7s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=174occurred in iteration=11, InterpolantAutomatonStates: 100, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 0.8s AutomataMinimizationTime, 14 MinimizatonAttempts, 75 StatesRemovedByMinimization, 8 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 15 LocationsWithAnnotation, 128 PreInvPairs, 188 NumberOfFragments, 455 HoareAnnotationTreeSize, 128 FomulaSimplifications, 522 FormulaSimplificationTreeSizeReduction, 1.0s HoareSimplificationTime, 15 FomulaSimplificationsInter, 13266 FormulaSimplificationTreeSizeReductionInter, 12.1s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.1s SsaConstructionTime, 0.4s SatisfiabilityAnalysisTime, 173.9s InterpolantComputationTime, 962 NumberOfCodeBlocks, 840 NumberOfCodeBlocksAsserted, 22 NumberOfCheckSat, 1578 ConstructedInterpolants, 0 QuantifiedInterpolants, 15993 SizeOfPredicates, 26 NumberOfNonLiveVariables, 1954 ConjunctsInSsa, 196 ConjunctsInUnsatCore, 21 InterpolantComputations, 7 PerfectInterpolantSequences, 6338/6540 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available - AllSpecificationsHoldResult: All specifications hold 1 specifications checked. All of them hold - InvariantResult [Line: 34]: Loop Invariant Derived loop invariant: (((((q == 0 && B == 1) && B * q + r == A) && B == d) && p == 1) || ((((B * 2 == d && p == 2) && q == 0) && B == 1) && B * q + r == A)) || ((((1 <= p / 2 / 2 && A + d == B * p + B * q + r) && q == 0) && B == 1) && B * q + r == A) RESULT: Ultimate proved your program to be correct! [2022-04-14 16:53:44,430 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request...